ExplicationJSON en CSV

Convertir un JSON imbriqué en CSV : objets, tableaux et réponses d'API

ParDéveloppeur logiciel
Publié le 4 min de lecture
Un fichier JSON agrandi à côté de grilles, qui représente l'aplatissement d'un JSON imbriqué en CSV

Un JSON imbriqué se convertit en CSV en gardant chaque enregistrement de premier niveau sur une ligne et en écrivant chaque objet ou tableau imbriqué dans une seule cellule sous forme de texte JSON. Ainsi, aucune donnée n'est perdue, même si un CSV ne peut contenir qu'un tableau plat.

Ce guide montre comment le convertisseur JSON en CSV traite chaque type d'imbrication, pourquoi il procède ainsi et comment remodeler votre JSON quand vous avez besoin des valeurs imbriquées dans des colonnes séparées.

Sur cette page
  1. Pourquoi le CSV ne peut-il pas stocker de données imbriquées ?
  2. Les objets imbriqués
  3. Les tableaux à l'intérieur des enregistrements
  4. Les réponses d'API avec un objet enveloppe
  5. Comment obtenir les champs imbriqués dans leurs propres colonnes
  6. Avant d'ouvrir le CSV
  7. JSON imbriqué en CSV : FAQ

À retenir

  • Les objets de premier niveau deviennent des lignes ; les objets et tableaux imbriqués deviennent du texte JSON dans une seule cellule.
  • Un objet qui enveloppe une seule liste, comme { "results": [...] }, est déballé automatiquement.
  • Un objet contenant plusieurs listes produit un fichier CSV par liste.
  • Pour obtenir les champs imbriqués dans leurs propres colonnes, aplatissez-les dans le JSON avant la conversion.

Pourquoi le CSV ne peut-il pas stocker de données imbriquées ?

Un fichier CSV est un seul tableau : chaque ligne a les mêmes colonnes et chaque cellule contient une seule valeur. Le JSON, défini par la RFC 8259, autorise des objets dans des objets et des listes de n'importe quelle longueur. Quand les deux se rencontrent, il faut faire un compromis, et le convertisseur choisit de préserver les données plutôt que de deviner une mise en page.

Les objets imbriqués

Un objet contenu dans un enregistrement devient du texte JSON dans une seule cellule. La colonne porte le nom de la clé qui le contient.

Entrée
[
  { "id": 7, "name": "Ana", "address": { "city": "Lisbon", "zip": "1100-148" } }
]
Sortie
id,name,address
7,Ana,"{""city"":""Lisbon"",""zip"":""1100-148""}"

Les guillemets doublés sont l'échappement CSV standard. Quand vous ouvrez le fichier dans Excel, la cellule d'adresse affiche {"city":"Lisbon","zip":"1100-148"}.

Les tableaux à l'intérieur des enregistrements

Une liste à l'intérieur d'un enregistrement, comme des tags ou des lignes d'articles, est elle aussi écrite sous forme de texte JSON dans une seule cellule : ["new","sale"]. Une formule de tableur ou un import ultérieur peut la redécouper si besoin.

Si le fichier entier est un tableau de tableaux, comme [[1, "a"], [2, "b"]], chaque tableau intérieur devient une ligne telle quelle. Aucune ligne d'en-tête n'est ajoutée, puisqu'il n'y a pas de clés pour nommer les colonnes.

Les réponses d'API avec un objet enveloppe

Comment les objets de premier niveau sont lus
JSON de premier niveauRésultat
{ "results": [ {...}, {...} ] }La liste results devient le tableau
{ "users": [...], "orders": [...] }votrefichier_users.csv et votrefichier_orders.csv, téléchargés ensemble dans un ZIP
{ "total": 2, "results": [...] }Traité comme un seul enregistrement, car toutes les valeurs ne sont pas des listes

Comment obtenir les champs imbriqués dans leurs propres colonnes

Quand vous avez besoin de address.city et address.zip dans des colonnes séparées, aplatissez le JSON avant de le convertir. Quelques lignes de code suffisent :

JavaScript : aplatir un niveau
const flat = rows.map(({ address, ...rest }) => ({
  ...rest,
  address_city: address?.city ?? null,
  address_zip: address?.zip ?? null,
}));

Enregistrez le résultat en JSON et convertissez-le. Chaque champ imbriqué a maintenant sa propre colonne. Si vous comptez analyser les données dans Excel, JSON en Excel applique les mêmes règles et crée directement un classeur.

Avant d'ouvrir le CSV

Les valeurs imbriquées contiennent souvent des virgules et des guillemets : assurez-vous que votre tableur lit le fichier en UTF-8 avec la virgule comme séparateur. Notre guide pour corriger les caractères spéciaux et les valeurs abîmées dans Excel détaille ces points, et le guide pas à pas JSON en CSV présente une conversion complète.

JSON imbriqué en CSV : FAQ

Peut-on convertir un JSON imbriqué en CSV ?

Oui. Chaque enregistrement de premier niveau devient une ligne, et les objets ou tableaux imbriqués sont écrits dans une seule cellule sous forme de texte JSON.

Comment aplatir un JSON imbriqué en colonnes séparées ?

Copiez les champs imbriqués dans des clés de premier niveau, par exemple address_city, avant la conversion. Un court script ou une formule de tableur peut s'en charger.

Que deviennent les tableaux à l'intérieur des enregistrements JSON ?

Ils sont stockés sous forme de texte JSON dans une seule cellule, par exemple ["new","sale"].

Pourquoi ai-je obtenu plusieurs fichiers CSV ?

Votre JSON est un objet qui contient plusieurs listes. Chaque liste devient son propre CSV, nommé d'après sa clé.

Le convertisseur perd-il des données ?

Non. Les valeurs qui ne tiennent pas dans une cellule plate sont conservées sous forme de texte JSON au lieu d'être supprimées.

Un résultat plat, rien de perdu

Écrire les valeurs imbriquées sous forme de texte JSON conserve chaque donnée tout en produisant un CSV valide. Quand vous avez besoin des champs imbriqués dans leurs propres colonnes, aplatissez-les d'abord et reconvertissez.

À lire ensuite