Aller au contenu principal

Aplatir un JSON imbriqué

Aplatissez un JSON imbriqué en tableau : choisissez le séparateur des chemins et le traitement des tableaux, prévisualisez puis exportez en CSV ou Excel.

  • Export
Automatiser

Intégrer ce widget

Personnalisez le rendu, vérifiez l’aperçu puis copiez le code.

Aperçu

Type de code d’intégration

Code à copier

Responsive et redimensionné automatiquement par Bethemesh.

Aplatissez des objets JSON imbriqués en colonnes à chemins explicites afin de les convertir en données tabulaires.

Vos fichiers sont traités localement dans votre navigateur et ne sont jamais envoyés sur nos serveurs.

Déposez votre fichier ici

Taille recommandée : 30 Mo maximum

Options

Cet outil vous a-t-il été utile ?

Comment fonctionne cet outil ?

Un JSON imbriqué décrit souvent une fiche avec des sous-objets, par exemple client.adresse.ville, et des listes comme des étiquettes ou des contacts. L’aplatissement transforme cette structure en colonnes nommées par leurs chemins, pour obtenir une table exploitable en CSV ou dans un tableur. Cet outil conserve les valeurs scalaires et propose deux traitements des listes imbriquées. Il ne valide pas un schéma métier, ne sélectionne pas un chemin JSONPath et ne multiplie pas les lignes pour chaque élément d’une liste.

Importez un fichier JSON dans la zone de dépôt, limitée à 30 Mio. Le document doit avoir un objet ou un tableau à sa racine ; une valeur scalaire seule comme 42 ou null est refusée. Un objet racine produit une ligne. Un tableau racine produit une ligne par élément : un élément scalaire est placé dans une colonne value, tandis qu’un objet est aplati. Le traitement reste local au navigateur. Le parseur JSON natif s’applique : commentaires et virgules finales sont invalides, les très grands entiers peuvent perdre leur précision et une clé répétée dans le JSON conserve sa dernière valeur avant l’aplatissement.

Les clés des sous-objets sont assemblées avec le séparateur choisi, un point par défaut. Avec un objet adresse contenant ville, le chemin devient adresse.ville. Ce séparateur n’est pas échappé dans les noms d’origine. Si une clé littérale adresse.ville coexiste avec le même chemin imbriqué, le moteur refuse la collision au lieu d’écraser une valeur. Choisissez alors un séparateur absent des clés ou préparez les noms en amont. Les objets vides sont conservés sous forme du texte {} plutôt que supprimés silencieusement.

Par défaut, chaque liste imbriquée est conservée dans une cellule sous forme de texte JSON, par exemple ["bleu","vert"]. Le mode index crée plutôt des colonnes suffixées par 0, 1 et ainsi de suite, en parcourant aussi les objets contenus dans ces positions. Il n’effectue pas une explosion en lignes ni un produit cartésien entre plusieurs listes. Une liste vide reste le texte [] dans les deux modes. Les nombres, booléens et null restent des valeurs scalaires ; les propriétés absentes deviennent des cellules vides lors de l’export tabulaire. Vérifiez l’aperçu puis exportez en CSV ou XLSX.

Comment utiliser cet outil ?

  1. Vérifier la racine et les clés

    Ouvrez un petit échantillon et repérez objets, tableaux et séparateurs déjà présents dans les noms. Assurez-vous que chaque élément du tableau racine représente bien une ligne attendue.

  2. Choisir le traitement des listes

    Gardez JSON pour préserver une liste entière dans une cellule ou choisissez index pour comparer ses positions. N’attendez pas une ligne supplémentaire par élément : ce mode n’existe pas ici.

  3. Contrôler la table obtenue

    Vérifiez un chemin imbriqué, une liste vide et une propriété absente. Contrôlez aussi les identifiants numériques longs avant l’export ; une précision perdue au parseur ne peut pas être restaurée ensuite.

Cas d'utilisation

Examiner un export d’API

Transformez des profils avec adresse et préférences en colonnes lisibles sans recopier manuellement chaque chemin.

Préparer une table d’import

Aplatissez les sous-objets avant une conversion tabulaire lorsque le logiciel destinataire n’accepte que des cellules scalaires.

Comparer des positions de listes

Utilisez le mode index pour exposer quelques positions fixes, en vérifiant que leur ordre a réellement le même sens dans tous les enregistrements.

Exemples

Une fiche avec liste conservée

Séparateur point et mode JSON par défaut : client.nom et client.ville deviennent des colonnes ; tags reste une liste encodée dans une cellule.

Entrée

{"client":{"nom":"Ada","ville":"Lyon"},"tags":["pro","actif"]}

Résultat

client.nom;client.ville;tags
Ada;Lyon;"[""pro"",""actif""]"

Des listes développées par position

Séparateur point et mode index : scores.0 et scores.1 exposent les positions. La liste vide reste [] dans une colonne scores.

Entrée

[{"id":1,"scores":[7,9]},{"id":2,"scores":[]}]

Résultat

id;scores.0;scores.1;scores
1;7;9;
2;;;[]

Conseils et bonnes pratiques

  • Choisissez un séparateur absent des clés existantes. Le point est pratique pour lire les chemins, mais une convention de noms réelle vaut mieux qu’une hypothèse sur la structure du document.
  • Conservez les identifiants longs comme chaînes dans le JSON source. Les nombres JavaScript ont une précision finie ; l’aplatissement ne sécurise pas après coup un entier déjà arrondi à la lecture.
  • Limitez les listes très longues en mode index : elles peuvent créer des milliers de colonnes. Garder leur texte JSON est souvent plus raisonnable si le destinataire n’exploite pas chaque position.

Questions fréquentes

Le mode index crée-t-il une ligne par élément ?

Non. Il crée des colonnes comme contacts.0.nom et contacts.1.nom dans la même ligne. Une ligne supplémentaire par contact demanderait une autre transformation avec une règle de répétition des identifiants. Plusieurs listes ne sont pas croisées automatiquement entre elles.

Pourquoi une collision de clés bloque-t-elle le résultat ?

Une clé littérale a.b et un objet a contenant b donnent le même chemin avec le point. Choisir arbitrairement une valeur ferait perdre une donnée. Le moteur signale donc l’erreur ; utilisez un autre séparateur ou renommez les clés dans le document source.

Quelle différence avec CSV vers JSON ?

Le convertisseur CSV/JSON attend une structure tabulaire plate avec des cellules scalaires. L’aplatisseur prépare précisément une structure imbriquée pour cet usage. Il conserve cependant certaines listes en texte JSON selon le mode choisi et ne garantit pas une reconstruction exacte de l’objet initial.

Tous les documents JSON sont-ils acceptés ?

La racine doit être un objet ou un tableau et respecter la syntaxe JSON standard. Une racine scalaire seule est refusée. Le fichier est lu en mémoire dans le navigateur ; sa limite d’import de 30 Mio ne garantit pas qu’une structure très profonde ou très large sera confortable à traiter.

Outils associés

Des outils similaires ou complémentaires à celui-ci.

Outils similaires

Convertissez facilement vos fichiers Excel, CSV et autres formats de tableaux directement dans votre navigateur.

Données & tableauxMis en avantUtiliser l’outil

Générez des instructions SQL INSERT depuis Excel, CSV ou JSON.

Données & tableauxUtiliser l’outil