JSON

JSON Path Extractor / Flatten

Aplatir (Flatten) un JSON imbriqué en une liste plate "chemin : valeur" et le reconstruire en une structure imbriquée (Unflatten). La notation de chemin est la même que dans JSONPath/JSON Diff : store.book[0].price.

Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.

How to use it

Common uses

Things to keep in mind

Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.

Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.

Article sur cet outil: JSON Flatten : transformer une structure imbriquée en liste plate

Questions fréquentes

Que font Flatten et Unflatten ?

Flatten transforme un JSON imbriqué en liste plate de paires chemin:valeur ; Unflatten fait l'inverse et reconstruit la structure imbriquée à partir de cette liste.

Le JSON que je colle est-il traité localement ?

Oui, tout le traitement se fait dans le navigateur en JavaScript, sans envoi vers un serveur.

Comment les éléments de tableau apparaissent-ils dans le chemin ?

Ils deviennent des clés indexées entre crochets, comme store.book[0].price, où [0] désigne le premier élément du tableau book.

Que se passe-t-il si une clé réelle contient elle-même un point ?

C'est une situation ambiguë : le chemin user.name peut désigner aussi bien un objet imbriqué {"user": {"name": ...}} qu'une clé plate {"user.name": ...}. La notation pointée ne fait pas la distinction, donc mieux vaut éviter ce genre de clés ou les traiter séparément.

Le format des chemins est-il identique dans tous les outils similaires ?

Non. La notation pointée pour les objets (user.name) est répandue presque partout, mais la notation des index de tableau varie : ici c'est items[0], alors que certaines bibliothèques écrivent items.0 sans crochets.

Articles : JSON