JSON Flatten / Unflatten

Aplatissez du JSON imbriqué en clés à notation pointée, ou reconstruisez-le, instantanément dans votre navigateur. Vos données restent sur votre appareil.

Votre JSON est aplati et reconstruit localement dans votre navigateur et n’est jamais téléversé, mais évitez de coller des secrets que vous ne voudriez pas voir dans l’historique de votre presse-papiers.

Besoin d’embellir le JSON d’abord ? Essayez le Formateur JSON.

À propos de JSON Flatten / Unflatten

Cet outil json flatten réduit un objet JSON imbriqué en une carte à un seul niveau dont les clés sont des chemins à notation pointée, si bien que {"a":{"b":1},"arr":[10,20]} devient {"a.b":1,"arr.0":10,"arr.1":20}. Passez en mode unflatten et il reconstruit la structure imbriquée d’origine à partir de ces chemins plats. Les formes clé/valeur à plat sont faciles à comparer, à stocker dans des fichiers .env ou de configuration, à mapper vers des colonnes de tableur ou à alimenter dans des bibliothèques de formulaires qui s’indexent par chemin. Vous pouvez remplacer le délimiteur, un point par défaut, par ce que vous voulez, et choisir si les indices de tableau s’écrivent arr.0 ou entre crochets arr[0]. Les clés d’objet, les tableaux, les primitives, null et les conteneurs vides sont tous gérés, et l’aller-retour est sans perte. Tout s’exécute entièrement dans votre navigateur, le JSON que vous collez est traité localement et ne quitte jamais votre appareil.

Fonctionnalités

Comment utiliser JSON Flatten / Unflatten

  1. Choisissez Aplatir ou Reconstruire avec le sélecteur de mode.
  2. Collez votre JSON dans le panneau de saisie à gauche.
  3. Définissez le délimiteur et, pour l’aplatissement, le style de clé de tableau si vous souhaitez autre chose que les valeurs par défaut.
  4. Lisez le JSON converti à droite, puis copiez-le ou téléchargez-le.

Exemple

Entrée

{
  "user": { "name": "Ada", "roles": ["admin", "dev"] },
  "active": true
}

Sortie

{
  "user.name": "Ada",
  "user.roles.0": "admin",
  "user.roles.1": "dev",
  "active": true
}

Les objets imbriqués et les éléments de tableau deviennent des clés à notation pointée se terminant par leur indice.

Erreurs courantes et dépannage

Foire aux questions

Comment les tableaux sont-ils aplatis ?
Chaque élément de tableau devient sa propre clé se terminant par l’indice de l’élément, si bien que arr[10, 20] s’aplatit en {"arr.0":10,"arr.1":20}. Vous pouvez passer au style crochets pour obtenir arr[0] et arr[1] à la place, et la reconstruction relit l’une ou l’autre forme en un vrai tableau.
Puis-je changer le délimiteur de clé ?
Oui. Le délimiteur est un point par défaut, mais vous pouvez le définir sur n’importe quel caractère ou courte chaîne — par exemple / ou __. Utilisez le même délimiteur lors de la reconstruction pour que les chemins se redécomposent correctement.
Aplatir puis reconstruire est-il sans perte ?
Pour du JSON bien formé, l’aller-retour renvoie des données identiques : objets, tableaux, chaînes, nombres, booléens, null et conteneurs vides sont tous préservés. La seule chose à éviter est un délimiteur qui apparaît aussi littéralement dans un nom de clé.
Quelle est la différence entre clés de tableau pointées et entre crochets ?
C’est purement la façon d’écrire les indices : le style pointé donne arr.0 tandis que le style crochets donne arr[0]. Les deux décrivent la même position dans le tableau, et l’étape de reconstruction comprend l’une ou l’autre notation, alors choisissez celle qu’attendent vos autres outils.
Pourquoi aplatir du JSON ?
Les cartes chemin/valeur à plat sont plus faciles à comparer ligne par ligne, à stocker dans des fichiers d’environnement ou de configuration, à aligner en colonnes de tableur et à lier à des champs de formulaire indexés par chemin. La reconstruction vous permet de retransformer cette forme plate en JSON imbriqué quand vous en avez besoin.
Mon JSON est-il téléversé quelque part ?
Non. L’aplatissement et la reconstruction s’exécutent entièrement dans votre navigateur, le JSON que vous collez est traité localement sur votre appareil et n’est jamais envoyé à un serveur.

Outils associés

Tous les outils ArrayKit