Aller au contenu
4all.tools

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.

Opération

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}

Options de formatage

Prêt. Choisissez une opération et lancez-la pour traiter l’entrée actuelle.

    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.