Analyser la taille, les types et la profondeur JSON
Mesurez la taille du JSON en octets UTF-8, comparez le gain de minification et examinez ses valeurs, tableaux et profondeur.
Espace de travail de l’outil
Analyseur de taille JSON
Activez JavaScript pour analyser JSON localement dans votre navigateur.
Analysez un document JSON strict, y compris les racines primitives. Les clés identiques après décodage sont rejetées. L’analyse commence seulement en appuyant sur Analyser JSON.
Votre JSON et le rapport restent dans cet onglet. Rien n’est envoyé ni enregistré.
Texte actuel : jusqu’à 1000000 unités UTF-16 et 4000000 octets UTF-8 ; fichier : 4000000 octets ; profondeur des conteneurs : 200 ; nœuds : 100000.
Texte actuel
Parsing : 1000000 unités de travail ; mesure : 1000000 unités ; analyse : 100000 visites ; classements : 4000000 comparaisons. Chaque chemin complet : 10000 unités ; chemins combinés : 400000. Délai : 15000 ms. Un chemin ou le travail peut dépasser le budget même si la taille et les nœuds respectent leurs limites.
Activez JavaScript pour analyser JSON localement dans votre navigateur.
Certains diagnostics ont été omis.
Mesures exactes
Les octets mesurent l’encodage UTF-8 du texte actuel de l’éditeur. La longueur utilise des unités UTF-16, pas des caractères visibles. KiB et MiB auxiliaires utilisent la base 1024. Le gain retire les espaces JSON hors des strings et un BOM initial ; il ne mesure ni compression, ni trafic réseau, ni RAM.
La profondeur du chemin compte propriétés et indices depuis la racine 0. Celle des conteneurs compte objets et arrays dans une chaîne : conteneur racine 1, primitive racine 0. Les clés sont les membres des objets, pas les indices des arrays.
| Type | Nœuds | Pourcentage des nœuds |
|---|
Les pourcentages reposent sur le nombre de nœuds de valeur, conteneurs et racine inclus, pas les octets. Les clés ne comptent pas comme strings. Les pourcentages arrondis peuvent ne pas totaliser 100 %.
Les arrays sont classés par éléments directs ; les chemins par segments. Les égalités suivent le préordre source. Chaque liste affiche jusqu’à 20 nœuds. Toutes les mesures globales restent exactes.
Plus grands arrays
Le document ne contient aucun array.
| Chemin complet | Type | éléments directs | Profondeur du chemin | Actions |
|---|
Chemins les plus profonds
| Chemin complet | Type | Profondeur du chemin | Actions |
|---|
Le presse-papiers est indisponible. Sélectionnez et copiez ce chemin complet.
Quelle place occupe votre JSON ?
Collez du JSON ou ouvrez un fichier .json UTF-8, puis cliquez sur Analyser JSON. Le rapport mesure le texte de l’éditeur, compte ses valeurs et présente les chemins les plus profonds ainsi que les tableaux ayant le plus d’éléments. Le traitement reste dans le navigateur ; le document et le rapport ne sont ni envoyés ni enregistrés.
L’entrée doit être du JSON strict. Les commentaires, virgules finales et clés dupliquées sont refusés. Une valeur seule comme null, 42 ou "" est valide, tout comme {} et [].
Pourquoi la taille et la longueur diffèrent
Les octets UTF-8 mesurent la place nécessaire pour encoder le texte. La longueur UTF-16 compte les unités utilisées par les chaînes JavaScript. Aucune de ces mesures ne correspond au nombre de caractères visibles.
Par exemple, {"é":"😀"} occupe 13 octets UTF-8 et 10 unités UTF-16. Écrire "\u00E9" au lieu de "é" prend plus de place, même si ces chaînes représentent la même valeur. KiB et MiB utilisent des multiples de 1024.
La mesure inclut les espaces et un éventuel BOM initial. Comme l’éditeur peut normaliser les fins de ligne, le résultat peut différer de la taille du fichier d’origine.
Ce que la minification économise
Le rapport compare le texte actuel à une version sans espaces, tabulations ni sauts de ligne à l’extérieur des chaînes. Un BOM initial est également retiré. Les espaces dans les chaînes, l’ordre des clés, les échappements et les nombres écrits comme 1.0, 1e0, -0 ou 9007199254740993 sont conservés. Un second BOM initial est invalide.
Essayez cet exemple :
{"a":[null,{"b":true}],"c":"x"}
Il est déjà minifié : les deux tailles sont de 31 octets, sans économie. Il contient 6 valeurs et 3 clés d’objet : 2 objets, 1 tableau, 1 null, 1 booléen et 1 chaîne.
Il s’agit de la taille du texte, pas d’une estimation de la compression gzip/Brotli, du trafic HTTP, de la mémoire ou des tokens d’IA. Cet outil ne télécharge pas de JSON minifié et n’exporte pas le rapport.
Lire le rapport de structure
Chaque valeur compte une fois, y compris la racine et les conteneurs vides. Les clés sont comptées séparément. Les pourcentages par type décrivent le nombre de valeurs, pas leur taille en octets.
La profondeur d’un chemin commence à zéro à la racine. La profondeur des conteneurs compte les objets et tableaux le long d’un chemin. Toutes deux atteignent 3 dans l’exemple. Le tableau $.a contient 2 éléments directs ; sa valeur la plus profonde se trouve en $.a[1].b.
Chaque liste de détails affiche jusqu’à 20 entrées. Les tableaux sont classés par nombre d’éléments directs, pas par taille ; en cas d’égalité, l’ordre du document est conservé. Les lignes omises ne changent pas les totaux, qui portent sur tout le document.
Utilisez Copier le chemin pour copier un chemin complet ou Localiser dans l’entrée pour sélectionner sa valeur. Après une modification, relancez l’analyse.
Documents volumineux
| Limite | Maximum |
|---|---|
| Fichier et texte encodé en UTF-8 | 4 000 000 octets |
| Longueur du texte | 1 000 000 unités UTF-16 |
| Conteneurs imbriqués | 200 niveaux |
| Valeurs | 100 000 |
| Durée d’analyse | 15 secondes |
Des chemins longs ou une structure complexe peuvent atteindre d’autres limites de traitement avant ces maxima. En cas d’échec, aucun rapport partiel n’est affiché. Un avertissement de précision ne signifie pas que le texte mesuré a été arrondi ; les nombres hors de la plage acceptée, comme 1e999, sont refusés.
JavaScript et un navigateur compatible avec les Workers sont nécessaires. L’annulation conserve l’entrée pour vous permettre de la réduire et de réessayer.