Skip to main content
CheckTown
Données

JSON Flatten: Convert Nested to Flat and Back

Publié le 5 min de lecture
Dans cet article

Qu'est-ce que l'aplatissement JSON ?

L'aplatissement JSON convertit un objet JSON profondément imbriqué en une structure plate clé-valeur utilisant des chemins en notation pointée. Chaque valeur terminale de l'objet original reçoit un chemin unique comme 'user.address.city' qui décrit sa position dans la hiérarchie.

L'opération inverse, le désaplatissement, prend les chemins en notation pointée et reconstruit la structure imbriquée originale. Ensemble, aplatir et désaplatir permettent de transformer le JSON entre représentations imbriquées et plates sans perdre de données.

Comment fonctionne l'aplatissement JSON

L'algorithme d'aplatissement parcourt récursivement l'arbre JSON, construisant une chaîne de chemin en descendant dans les objets et tableaux imbriqués.

  • Parcours récursif — l'algorithme parcourt chaque clé de l'objet, ajoutant chaque clé à un chemin séparé par des points
  • Notation d'index de tableau — les éléments de tableau utilisent la notation entre crochets comme 'items[0].name' pour préserver leur position
  • Collecte des feuilles — lorsqu'une valeur primitive (chaîne, nombre, booléen, null) est atteinte, le chemin complet et la valeur sont stockés comme paire clé-valeur plate

Essayez gratuitement — sans inscription

Aplatir ou désaplatir du JSON →

Quand utiliser l'aplatissement JSON

Le JSON aplati est utile chaque fois que vous devez travailler avec des données imbriquées dans des systèmes uniquement plats ou comparer des structures complexes.

  • Stockage en base de données — stocker des configurations ou métadonnées imbriquées dans des tables clé-valeur plates sans changement de schéma
  • Export CSV — convertir des enregistrements JSON imbriqués en lignes plates adaptées à l'import dans un tableur
  • Comparaison de configuration — aplatir deux fichiers de config et différencier les clés plates pour repérer rapidement les valeurs modifiées

Foire aux questions

L'aplatissement préserve-t-il les types de données ?

Oui. Toutes les valeurs primitives (chaînes, nombres, booléens, null) sont préservées exactement. Les tableaux deviennent des chemins indexés comme 'items[0]', et les objets imbriqués deviennent des chemins séparés par des points. Le désaplatissement reconstruit les types originaux.

Que se passe-t-il avec un imbriquement très profond ?

L'aplatisseur gère n'importe quelle profondeur d'imbriquement. Les objets très profonds produisent de longues chaînes de chemin, mais il n'y a pas de limite fonctionnelle. La plupart des implémentations utilisent des approches itératives pour éviter les problèmes de pile d'appels.

Peut-on aplatir du JSON avec des clés dupliquées ?

JSON n'autorise pas les clés dupliquées au même niveau selon la spécification. Si votre parseur les accepte, seule la dernière valeur pour chaque clé survit au parsing. L'aplatisseur travaille sur l'objet parsé, donc les doublons sont déjà résolus.

Outils associés