Aller au contenu
LeedyBox
Soutenir

Convertir entre JSON, CSV et YAML

JSON, CSV et YAML peuvent souvent contenir les mêmes données, mais ils ne se correspondent pas un à un. Ce guide explique les points forts de chaque format, les détails qui peuvent changer lors d’une conversion et comment vérifier le résultat.

Les points forts de chaque format

JSON est le format courant des API web et des configurations lues par des programmes. Il possède un petit ensemble de types bien définis : objets, tableaux, chaînes, nombres, booléens et null. Sa syntaxe stricte le rend facile à analyser pour un logiciel, mais il n’accepte pas de commentaires.

CSV est un tableau : une ligne par enregistrement, une valeur par colonne. Les tableurs, les bases de données et les outils de reporting l’importent facilement, et il reste compact pour de grands ensembles de données plats. Il n’offre aucun moyen standard de décrire les types de données ou les structures imbriquées.

YAML est conçu pour être écrit et lu par des humains. Il est apprécié pour les fichiers de configuration, car il accepte les commentaires, utilise l’indentation au lieu des accolades et crochets, et peut décrire les mêmes structures que JSON. Cette syntaxe souple signifie aussi qu’une petite erreur d’indentation ou de guillemets peut en changer le sens.

CaractéristiqueJSONCSVYAML
Objets et tableaux imbriquésOuiNon (tableau plat)Oui
Types de donnéesChaîne, nombre, booléen, nullTexte uniquementDéduits de la valeur
CommentairesNonNonOui
Usage typiqueAPI, données d’applicationTableurs, importsFichiers de configuration

L’imbrication est aplatie en CSV

Un fichier CSV ne comporte que des lignes et des colonnes : les données imbriquées doivent donc être restructurées. Deux approches sont courantes. La première aplatit la structure en noms de colonnes comme address.city et address.zip. La seconde conserve la partie imbriquée sous forme de chaîne JSON dans une seule cellule. Le convertisseur de données de LeedyBox propose les deux options.

Chaque approche a ses inconvénients. Les colonnes aplaties sont faciles à lire dans un tableur, mais des tableaux de longueurs différentes produisent de nombreuses colonnes clairsemées. Les chaînes JSON dans les cellules conservent la structure, mais sont plus difficiles à modifier à la main. Si vous reconvertissez plus tard en JSON, vérifiez que la structure correspond à celle de départ.

Les types deviennent du texte en CSV

CSV stocke chaque valeur sous forme de texte. Le nombre 42, la chaîne "42" et le booléen true se présentent de la même façon dans une cellule. Lorsqu’un fichier CSV est relu, un programme doit deviner, ou se voir indiquer, quelles colonnes contiennent des nombres ou des dates. Le convertisseur de LeedyBox lit les valeurs CSV comme du texte : les nombres issus d’un fichier CSV apparaissent donc comme des chaînes en JSON, sauf si vous les modifiez.

Les tableurs ajoutent leurs propres suppositions : ils peuvent supprimer les zéros initiaux des codes postaux ou des numéros de téléphone, afficher les grands nombres en notation scientifique ou interpréter des valeurs comme des dates. Les cellules commençant par =, +, - ou @ peuvent être traitées comme des formules ; le convertisseur propose un réglage facultatif de protection des formules Excel pour la sortie CSV.

Commentaires et typage YAML

JSON n’accepte pas de commentaires : une conversion de YAML en JSON les supprime donc. La conversion inverse ne les rétablit pas. Conservez le fichier YAML d’origine si les commentaires sont importants.

YAML devine les types à partir des valeurs sans guillemets. Selon les anciennes règles de YAML 1.1, utilisées par certains analyseurs, des mots comme no, yes, on et off deviennent des booléens : un code pays comme NO peut ainsi se transformer en false. Des valeurs comme 2026-10-02 peuvent devenir des objets date, et 1e3 ou 010 peuvent être lus comme des nombres. Le convertisseur de LeedyBox lit le YAML avec le schéma core de YAML 1.2, qui conserve no et les dates sous forme de texte, mais d’autres outils qui lisent votre fichier peuvent se comporter différemment. Mettre entre guillemets les valeurs qui doivent rester du texte est l’habitude la plus sûre.

Les grands nombres en JavaScript

JavaScript stocke les nombres sous forme de valeurs à virgule flottante sur 64 bits. Les entiers supérieurs à 9 007 199 254 740 991 (253 − 1) ne peuvent pas tous être représentés exactement : un grand identifiant comme 12345678901234567891 peut donc être arrondi sans avertissement lors de l’analyse. Cela concerne tout convertisseur fonctionnant dans le navigateur, y compris celui-ci, qui affiche un avertissement lorsqu’il détecte de tels nombres. Les identifiants de base de données et autres identifiants longs sont plus sûrs stockés sous forme de chaînes.

Vérifier le résultat

Une conversion qui produit une sortie valide n’est pas forcément correcte. Avant d’utiliser le résultat :

  • Comparez le nombre de lignes ou d’éléments avec la source.
  • Contrôlez quelques enregistrements, y compris ceux qui contiennent des valeurs vides, des caractères spéciaux, des sauts de ligne ou des données imbriquées.
  • Vérifiez les colonnes qui doivent être des nombres, des booléens ou des dates dans le système cible.
  • Recherchez les nombres longs qui ont pu être arrondis.
  • Validez la sortie avec le programme qui la lira, en commençant par une copie de vos données.

L’outil Comparateur de texte peut vous aider à comparer un fichier d’origine avec le résultat d’un aller-retour de conversion.

Questions fréquentes

Puis-je convertir du JSON en CSV puis revenir au JSON sans modification ?

Seulement pour des données simples et plates, et même dans ce cas, les nombres et les booléens reviennent généralement sous forme de texte. Les données imbriquées et les types dépendent des options utilisées : comparez donc le résultat avec l’original.

Pourquoi ma valeur YAML est-elle devenue true ou false ?

Certains analyseurs YAML traitent les mots sans guillemets comme yes, no, on et off comme des booléens. Mettez la valeur entre guillemets pour la conserver sous forme de texte.

Mes données sont-elles envoyées lors de la conversion ?

Le convertisseur de données de LeedyBox fonctionne dans votre navigateur : les données que vous collez sont donc traitées sur votre appareil.