Aller au contenu principal
CuteJSON
↑↓ Naviguer Enter Selectionner Esc Fermer

Comment convertir JSON en CSV sans perdre de données

Publie 2 min de lecture Par Akash Kinkar Pandey

CSV n'a pas de spécification que tout le monde suit, ce qui est exactement pourquoi tant de convertisseurs ne sont pas d'accord entre eux sur les cas limites. Cet outil suit la RFC 4180 et indique l'unique endroit où il s'en éloigne, plutôt que de choisir des règles silencieusement.

Utilisation du convertisseur JSON vers CSV

Choisissez une direction, définissez le séparateur (virgule, point-virgule ou tabulation) et si la première ligne contient les noms de colonnes, puis appuyez sur Convertir. Pour aller en CSV, il faut un tableau d'objets, la seule forme de JSON qui est réellement un tableau ; un seul objet est aussi accepté, considéré comme un tableau d'une seule ligne.

Convertir

[{"name":"Doe, Jane","age":30,"note":null},{"name":"Smith","age":25,"note":"line1\nline2"}]

produit :

name,age,note
"Doe, Jane",30,
Smith,25,"line1
line2"

Un champ n'est mis entre guillemets que lorsque c'est réellement nécessaire : la virgule dans “Doe, Jane” force les guillemets, le saut de ligne incorpore dans la deuxième note force les guillemets, et une valeur simple comme Smith reste sans guillemets.

Ce qui arrive aux valeurs imbriquées et null

Un objet ou un tableau imbriqué n'a pas de forme CSV du tout, une grille de valeurs simples, il est donc écrit dans la cellule en tant que son propre texte JSON plutôt que jeté ou étalé dans des colonnes inventées. null devient un champ vide, ce qui signifie bien qu'un null et une chaîne vide sont indistinguables une fois qu'ils atteignent CSV. Les deux choix sont indiqués sur la page plutôt que découverts plus tard.

Pourquoi chaque champ revient en chaîne

En convertissant depuis CSV, chaque valeur reste en chaîne, délibérément. Un fichier CSV n'enregistre aucun type, donc les deviner est comment un code postal de 01234 perd son zéro initial et devient 1234, et comment un identifiant long est arrondi dès que quelque chose essaie de le lire comme un nombre. Convertir les colonnes que vous connaissez en nombres après coup est une ligne de code ; un identifiant silencieusement arrondi n'est pas récupérable. En relisant l'exemple ci-dessus, age revient en tant que chaîne "30", pas le nombre 30, et le champ vide note revient en tant que "", pas null.

Inverser la direction

L'inversion déplace la sortie actuelle dans l'entrée et retourne la direction, vous pouvez donc vérifier immédiatement qu'un document fait le voyage aller et retour à travers CSV comme prévu, sans tout retaper. Essayez avec des données contenant une virgule dans un champ ou un zéro initial dans un ID, car ce sont exactement les cas que la plupart des convertisseurs ratent.

Retour aux articles