YamlBox

Convertisseurs de données · 5 minutes de lecture

JSON à CSV : aplatir les données imbriquées sans perdre de

CSV est toujours le format qui s'ouvre dans n'importe quoi : feuilles de calcul, outils BI, systèmes financiers, ordinateur portable d'un réviseur. La conversion de JSON en CSV est principalement une question de savoir quoi faire avec les parties imbriquées, car une table a une ligne par enregistrement et des colonnes fixées à l'avance, tandis que JSON s'imbrique volontiers aussi profondément qu'il le souhaite.

Mis à jour

Le problème des colonnes

Deux règles rendent prévisible une conversion de JSON à CSV. Premièrement, les colonnes sont l'union de toutes les clés de tous les enregistrements : une clé qui apparaît dans un seul objet obtient toujours une colonne, vide ailleurs. Deuxièmement, chaque ligne doit émettre des valeurs dans le même ordre. Se tromper produit un fichier qui s'ouvre correctement et est silencieusement mal aligné par rapport à la première ligne où une clé était absente.

Aplatir des objets imbriqués

La technique conventionnelle est la notation par points : `address` contenant `city` et `postcode` devient `address.city` et `address.postcode`. Cela permet de garder chaque valeur visible et interrogeable dans la feuille de calcul, au prix d'en-têtes plus longs. Les structures profondément imbriquées peuvent produire des noms compliqués, alors aplatissez un niveau où vous contrôlez les données et laissez l'outil s'aplatir complètement lorsque vous explorez.

                {"id": 7, "customer": {"name": "Ada", "plan": "pro"}}
→ id,customer.name,customer.plan
   7,Ada,pro
              

Tableaux : la partie qui s'aplatit mal

Un tableau de scalaires peut être réuni en une seule cellule avec un séparateur, ce qui convient aux balises et acceptable pour les listes courtes. Un tableau d'objets (éléments de ligne de commande, par exemple) n'appartient pas à une seule cellule : joignez-le et vous ne pouvez pas additionner les quantités ; indexez-le dans `items.0.sku`, `items.1.sku`, et les colonnes dépendent du nombre d'articles que chaque commande contenait. Dans ce cas, les données nécessitent deux fichiers CSV, un par table, liés par une clé.

Si une cellule contient une virgule, un guillemet ou une nouvelle ligne, elle doit être mise entre guillemets et les guillemets internes doublés. La sortie générée gère cela – les CSV modifiés manuellement ne le font généralement pas, c'est pourquoi les importations échouent par intermittence sur les lignes contenant des adresses.

Faire en sorte que le fichier se comporte dans Excel

Excel assume le codage du système, sauf indication contraire, de sorte que les caractères accentués peuvent être corrompus. L'émission d'UTF-8 avec une marque d'ordre d'octet évite cela ; sans cela, le même fichier qui semble parfait dans Numbers ou Sheets affiche mojibake dans Excel. Les identifiants numériques longs (numéros de carte, grands SKU) méritent également d'être cités afin qu'Excel ne les convertisse pas en notation scientifique.

Lorsque CSV est la mauvaise sortie

Si le consommateur est un programme, CSV jette les informations de type et l'imbrication sans aucun bénéfice — JSON Des lignes ou une charge de base de données sont préférables. CSV s'adresse aux humains disposant de feuilles de calcul : rapports, exports, rapprochement. Le choisir délibérément plutôt que par habitude représente la moitié du travail. Le convertisseur YamlBox JSON en CSV s'exécute entièrement dans le navigateur, de sorte qu'une exportation contenant des lignes client ne quitte jamais votre machine.

JSON à CSV — questions fréquemment posées

Comment les objets imbriqués sont-ils gérés lors de la conversion de JSON en CSV ?

Ils sont aplatis avec la notation par points par défaut — `customer.name` devient sa propre colonne. Vous pouvez conserver les valeurs regroupées à la place, mais ce sont les colonnes aplaties qui rendent le fichier filtrable et pivotable dans une feuille de calcul.

Pourquoi les caractères accentués semblent-ils incorrects dans Excel après la conversion ?

Excel lit le fichier en utilisant le codage du système local, sauf indication contraire dans l'ordre des octets. L'exportation d'UTF-8 avec une nomenclature conserve les noms intacts ; sans cela, les mêmes données s'affichent correctement dans Google Sheets et incorrectement dans Excel.

Puis-je convertir un tableau d'objets en CSV ?

Les colonnes proviennent de l'union des clés de tous les enregistrements, de sorte qu'un tableau d'objets de forme mixte produit toujours un tableau valide avec des espaces là où une clé manquait. Les tableaux à l'intérieur de ces objets sont le cas qui doit être divisé en un deuxième fichier.

Outils mentionnés dans cet article

Parcourez la liste complète des 19 outils

Plus d'articles à lire

5 minutes de lecture

CSV à JSON : d’un tableur aux données structurées

Convertissez CSV en JSON dans le navigateur : explication des lignes d'en-tête, des délimiteurs, des règles de citation et de la gestion des types, avec les exportations de feuilles de calcul qui cassent les analyseurs.

Tous les 19 messages →