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
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.
6 minutes de lecture
Excel vers JSON : transformer des classeurs en données
Convertissez Excel en JSON dans le navigateur à partir de XLSX classeurs : en-têtes, séries de dates, formules et feuilles multiples expliquées, sans rien télécharger.
5 minutes de lecture
Tableaux Markdown : générer les au lieu de compter les tuyaux
Créez des tableaux de démarques de GitHub saveurs à partir de lignes ou de feuilles de calcul : alignement, tuyaux d'échappement et lorsqu'un tableau n'est pas le bon choix pour votre README.