Skip to content
jsonforge.app

JSON Flatten

Aplatissez du JSON imbriqué en clés à notation pointée, ou désaplatissez pour retrouver la structure imbriquée.

Loading editor…

Flattened JSON

Paste JSON to flatten into dot-notation keys.

Qu'est-ce que JSON Flatten ?

Un outil d'aplatissement/désaplatissement JSON transforme des structures JSON entre formes imbriquée et plate. L'aplatissement convertit des objets profondément imbriqués en un objet à un seul niveau avec des clés en notation pointée (par ex. user.address.city devient user.address.city, ou user[0].address.city pour les tableaux). Le désaplatissement inverse le processus et reconstruit la structure imbriquée d'origine à partir des clés en notation pointée. C'est utile pour le traitement de données, les transformations d'API, la conversion de données hiérarchiques en formats tabulaires, ou quand vous avez besoin d'interroger des propriétés imbriquées par de simples recherches de clés. Les tableaux sont préservés en notation entre crochets — user.tags[0] désigne le premier élément du tableau tags. L'outil affiche des statistiques de réduction de profondeur, pour voir combien de complexité est retirée ou restaurée.

Comment utiliser JSON Flatten

  1. Collez votre JSON imbriqué dans le panneau de gauche pour l'aplatir, ou du JSON plat pour le désaplatir.
  2. Basculez entre les modes Flatten et Unflatten avec le bouton de commutation.
  3. La sortie aplatie utilise la notation pointée (.) pour les objets imbriqués et la notation entre crochets ([]) pour les tableaux.
  4. Le désaplatissement reconstruit la structure d'origine à partir des clés en notation pointée.
  5. Les statistiques affichent la profondeur d'origine, la profondeur aplatie et le nombre total de clés.

Exemples

Objet imbriqué → Aplati

Entrée

{ "user": { "name": "Alice", "address": { "city": "San Francisco", "zip": "94102" } } }

Sortie

{ "user.name": "Alice", "user.address.city": "San Francisco", "user.address.zip": "94102" }

Tableau → Aplati avec crochets

Entrée

{ "users": [ { "name": "Alice", "role": "admin" }, { "name": "Bob", "role": "user" } ] }

Sortie

{ "users[0].name": "Alice", "users[0].role": "admin", "users[1].name": "Bob", "users[1].role": "user" }

Erreurs courantes

  • Supposer que les clés aplaties perdent l'information de type — les clés aplaties sont des chaînes (par ex. user.address.city), mais les valeurs associées conservent leurs types d'origine. Nombres, booléens, null, objets et tableaux sont tous correctement préservés.
  • Croire que le désaplatissement peut annuler des collisions de clés arbitraires — si l'aplatissement crée des collisions de clés (par ex. a.b et a['b'] mappant vers la même clé aplatie), le désaplatissement ne peut pas restaurer les deux originaux. Utilisez un nommage de propriétés cohérent dans votre JSON source pour l'éviter.
  • S'attendre à un tri ou un ordre alphabétique dans la sortie aplatie — les clés aplaties apparaissent dans l'ordre de première rencontre d'un parcours en profondeur. L'ordre est déterministe mais pas alphabétique (a.b.c vient avant a.b.d parce que la propriété c est visitée avant d, pas à cause d'un tri alphabétique).

Pourquoi utiliser cet outil

  • Conversion bidirectionnelle — aplatissez du JSON imbriqué en un seul niveau, puis désaplatissez pour retrouver la structure d'origine. Les statistiques affichent la réduction de profondeur et le nombre de clés.
  • Préservation des tableaux — la notation entre crochets (users[0].name) préserve la structure des tableaux, facilitant la référence à des éléments précis ou la reconstruction des tableaux d'origine.
  • Accès par requête simple — le JSON aplati permet d'accéder à n'importe quelle propriété imbriquée par une seule recherche de clé, sans boucles imbriquées ni traversée récursive.

Questions fréquentes