Transformer du JSON imbriqué en chemins et valeurs

Choisissez l’aplatissement ou la reconstruction et collez l’entrée adaptée. Vérifiez les clés numériques et les chemins qui se chevauchent lors de la reconstruction.

Fonctionne localement dans votre navigateur
1Source2Transformer3Résultat

Entrée JSONimbriqués ↔ chemins
Sortie JSON

Comment aplatir du JSON en chemins puis le reconstruire

Collez un document JSON, choisissez Aplatir ou Restaurer puis Exécuter. Aplatir transforme chaque valeur finale en chemin comme user.profile.roles.0 ; Restaurer lit un objet plat de chemins et reconstruit le document imbriqué. Le séparateur peut être un point ou une barre oblique, et une clé qui contient le séparateur est échappée par une barre inverse : user.profile.roles.0 et une clé littérale « a.b » restent donc distinguables.

Tout s’exécute dans la page en JavaScript, rien n’est envoyé, et le résultat peut être copié ou téléchargé sous kivtools-json-flatten.json ou kivtools-json-unflatten.json.

  1. Collez le JSON dans le champ d’entrée, ou cliquez sur Charger un exemple pour partir du document d’exemple.
  2. Choisissez Aplatir pour transformer le document en paires chemin/valeur, ou Restaurer pour le reconstruire depuis des chemins.
  3. Choisissez le séparateur : Point (.) ou Barre oblique (/). Les clés qui contiennent le séparateur sont échappées automatiquement.
  4. Cliquez sur Exécuter. Le résultat apparaît dans le champ de sortie avec le nombre de chemins, la taille en octets et la profondeur maximale.
  5. Copiez ou téléchargez le résultat ; cliquez sur Effacer pour réinitialiser le formulaire.

Ce que l’analyseur conserve, comment les tableaux et les conflits sont traités et ce que contiennent les exports

Ce que l’analyseur conserve

Les valeurs sont copiées sans changement de type : les chaînes restent des chaînes, les nombres des nombres et null reste null. Les clés qui semblent dangereuses en JavaScript — __proto__, constructor, prototype — sont ici des clés de données ordinaires : l’outil crée des objets sans prototype, donc aplatir {"__proto__": 1} conserve le chemin « __proto__ » et le restaurer recrée la même clé.

Les objets et tableaux vides sont conservés par défaut. Désactivez « Conserver les objets et les tableaux vides » pour les supprimer ; la métrique indique alors combien de conteneurs ont été supprimés — 2 pour {"keep":{},"drop":[],"value":1}.

Comment les chemins redeviennent des tableaux

Restaurer ne reconstruit un tableau que si un nœud porte exactement les clés numériques denses 0…n-1, ce que laisse un vrai tableau après aplatissement. Les chemins lacunaires comme 0 et 2, ou un nœud qui mélange 0, 1 et x, restent des clés d’objet : aucune clé n’est perdue et aucun trou null n’est inventé.

Un chemin qui exige la même clé sous deux formes est signalé au lieu d’être écrasé en silence : l’objet plat {"a":1,"a.b":2} répond « Le chemin « a.b » entre en conflit avec une clé précédente. », et la sortie précédente est effacée pour qu’un ancien résultat ne soit pas pris pour la nouvelle exécution.

Profondeur, taille et exports

Aplatir parcourt le document de façon itérative : une valeur imbriquée sur 20 000 niveaux donne un seul chemin sans dépasser la pile. Reconstruire un tel document atteint la limite de l’écrivain JSON du navigateur ; l’outil affiche alors son message localisé de profondeur excessive au lieu d’une erreur brute du moteur.

Les erreurs de syntaxe JSON conservent la position du moteur (par exemple « line 1 column 9 ») après un préfixe localisé, ce qui permet de corriger un collage mal formé. Les téléchargements s’appellent kivtools-json-flatten.json ou kivtools-json-unflatten.json selon le mode.

Outils récents :