Aplatissez et reconstruisez des chemins JSON dans votre navigateur
Transformez un JSON imbriqué en chemins et valeurs, ou reconstruisez sa structure à partir de ces chemins, dans votre navigateur.
Espace de travail de l’outil
Aplatir et reconstruire JSON
Activez JavaScript pour traiter le JSON localement dans votre navigateur.
La racine est $. Une propriété simple s’écrit $.name ; une clé littérale avec un point utilise $["a.b"] ; un indice de tableau utilise $[0]. Un objet aplati vide {} est invalide ; {"$":{}} représente un objet vide. Un conflit survient lorsqu’un chemin est le préfixe d’un autre, par exemple {"$.a":1,"$.a.b":2}. Les tableaux creux sont refusés, par exemple {"$[2]":"x"}. Tout objet avec des points ne peut pas être reconstruit sans ambiguïté. L’opération inverse vérifie à nouveau les limites.
L’utilisation du résultat passe à l’opération inverse. Ses limites sont vérifiées à nouveau ; elle ne démarre pas automatiquement.
Fichier : 8 000 000 octets ; entrée : 2 000 000 unités UTF-16 ; profondeur : 200 ; nœuds : 100 000 ; entrées : 50 000 ; sortie : 2 000 000 unités UTF-16.
Limites de traitement
Budgets : 1 000 000 unités d’analyse, 1 000 000 de transformation et 1 000 000 de sérialisation. Les chemins acceptent 200 segments, 10 000 unités chacun et 1 000 000 au total ; les indices vont jusqu’à 99 999. Ces maxima ne sont pas tous garantis simultanément.
Le traitement reste dans ce navigateur. Aucun envoi, URL distante, brouillon enregistré ou contenu du document dans les URL ou journaux.
Aucun fichier sélectionné
Exemple d’entrée
Chargez l’exemple de l’opération sélectionnée.
{"user":{"name":"Ana"},"items":[1,{},[]],"a.b":null,"":true}Exemples de syntaxe des chemins
{"$.user.name":"Ana","$.items[0]":1,"$.items[1]":{},"$.items[2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}
{"$[\"user\"][\"name\"]":"Ana","$[\"items\"][0]":1,"$[\"items\"][1]":{},"$[\"items\"][2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}
Prêt. Choisissez une opération et lancez-la pour traiter l’entrée actuelle.
Certains diagnostics ont été omis après avoir atteint la limite.
Aperçu de la sortie
Sortie complète à copier manuellement
Sélectionnez la sortie complète avec le bouton ci-dessous, puis copiez-la depuis ce champ.
Transformez un JSON imbriqué en une liste de chemins
Aplatir un document attribue un chemin à chaque valeur. C’est utile pour examiner une structure profonde ou travailler sur des données à partir de leur emplacement. Collez du JSON ou ouvrez un fichier .json UTF-8, choisissez Aplatir JSON, puis lancez l’opération. Pour faire l’inverse, collez la liste de chemins et choisissez Reconstruire JSON.
Essayez ce document :
{"user":{"name":"Ana"},"items":[1,{},[]],"a.b":null,"":true}
Avec la notation par points :
{"$.user.name":"Ana","$.items[0]":1,"$.items[1]":{},"$.items[2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}
Avec la notation par crochets :
{"$[\"user\"][\"name\"]":"Ana","$[\"items\"][0]":1,"$[\"items\"][1]":{},"$[\"items\"][2]":[],"$[\"a.b\"]":null,"$[\"\"]":true}
Les deux cartes reconstruisent les données d’entrée. La sortie par défaut utilise deux espaces ; les exemples sont minifiés pour faciliter la comparaison des chemins.
Lire les chemins
$ représente la racine. $.name désigne la propriété name et $[0] le premier élément d’un tableau. Les guillemets changent le sens : $["0"] est une propriété nommée 0, pas un indice. Une clé contenant un point, comme a.b, s’écrit $["a.b"] pour conserver le point dans son nom.
La notation avec points utilise des crochets lorsqu’une clé l’exige ; la notation avec crochets les utilise pour chaque propriété. La reconstruction accepte les deux formes, même combinées. Ces chemins ne permettent pas les filtres, jokers ou tranches de JSONPath.
La liste de chemins est un objet JSON non vide. Ses valeurs sont des primitives ou des conteneurs vides ; les chemins indiquent la structure qui les entoure. Les objets et tableaux vides sont conservés : {"$.settings":{},"$.items":[]} reconstruit les deux. Une racine primitive ou vide utilise une seule entrée, comme {"$":null}. Un objet vide {} ne permet pas de connaître la valeur racine.
Les chemins contradictoires sont refusés. Par exemple, {"$.a":1,"$.a.b":2} impose que a soit à la fois un nombre et un objet. {"$.a":1,"$[0]":2} mélange objet et tableau à la racine. Les indices doivent commencer à zéro et se suivre sans interruption : {"$[2]":"x"} est donc invalide. Deux chemins désignant le même emplacement sont refusés, même s’ils sont écrits différemment ; aucune valeur n’est écrasée.
Nombres et aller-retour
L’entrée doit être du JSON strict. Les commentaires, JSONC, JSON5 et clés dupliquées sont refusés. Cela comprend les clés devenant identiques après décodage, comme dans {"a":1,"\u0061":2}.
Les nombres gardent leur écriture : 9007199254740993, 0.10000000000000001, -0 et 1E+02 ne sont pas réécrits. Un avertissement de précision concerne leur représentation interne en JavaScript ; il ne signifie pas que la sortie a été arrondie. Les nombres hors de la plage acceptée, comme 1e400, sont refusés.
Aplatir puis reconstruire conserve les valeurs, les clés, les positions des tableaux et l’écriture des nombres dans les limites de l’outil. La mise en forme, les échappements et l’ordre des propriétés peuvent changer. Le résultat utilise des fins de ligne LF, sans BOM ni saut final.
Copier le résultat complet
L’aperçu affiche jusqu’à 20 000 unités UTF-16 et peut s’arrêter au milieu du JSON. Copier JSON et Télécharger JSON incluent le résultat entier. Si le presse-papiers est indisponible, utilisez le champ de copie manuelle. Les fichiers UTF-8 sont nommés json-flattened.json ou json-reconstructed.json.
Utiliser le résultat comme entrée place toute la sortie dans l’éditeur et passe à l’opération inverse. Lancez-la lorsque vous êtes prêt. Modifier l’entrée ou les options retire le résultat précédent ; annuler conserve le texte d’entrée.
| Limite | Maximum |
|---|---|
| Fichier local | 8 000 000 octets |
| Texte d’entrée ou de sortie | 2 000 000 unités UTF-16 |
| Conteneurs imbriqués / segments de chemin | 200 |
| Valeurs JSON | 100 000 |
| Entrées de la liste de chemins | 50 000 |
| Un chemin | 10 000 unités UTF-16 |
| Indice de tableau | 99 999 |
| Durée de l’opération | 15 secondes |
Les documents complexes peuvent atteindre les limites de traitement avant les limites de taille. Tout reste dans le navigateur ; les documents ne sont ni envoyés ni enregistrés.