Formats de données

Tableau JSON vs CSV vs Liste à lignes : Quel format choisir ?

Comparez les tableaux JSON, les CSV et les listes à lignes. Apprenez-en sur l'échappement, les données imbriquées, l'utilisation dans les tableurs et les pièges de conversion pour vos projets de données.

Lorsque vous travaillez avec des listes de données pour des tableurs, des API ou des outils de développement, vous choisissez souvent entre quelques formats texte simples. Les tableaux JSON, les fichiers CSV et les listes à lignes (un élément par ligne) sont parmi les plus courants. Chaque format a des forces et des limites qui affectent la façon dont vous gérez l'échappement, les structures imbriquées et l'édition humaine.

Les tableaux JSON sont adaptés aux machines et prennent en charge des types de données riches ; le CSV est le format universel pour l'importation et l'exportation dans les tableurs ; les listes à lignes sont les plus simples pour l'édition manuelle et le contrôle de version. Le bon choix dépend de la nécessité de préserver la structure, de partager avec des utilisateurs non techniques ou de minimiser la taille du fichier.

Ce guide compare les trois formats sous l'angle de l'échappement, des données imbriquées, de l'intégration dans les tableurs et des pièges de conversion. Vous apprendrez comment utiliser chaque format efficacement et éviter les erreurs courantes lors du transfert de données entre eux.

Comprendre les trois formats

Un tableau JSON est une collection ordonnée de valeurs entre crochets. Il peut contenir des chaînes, des nombres, des booléens, des objets et des tableaux imbriqués. Le CSV (valeurs séparées par des virgules) représente des données tabulaires sous forme de lignes de champs séparés par des virgules, souvent avec une ligne d'en-tête facultative. Une liste à lignes est la forme la plus simple : une valeur par ligne, pas de délimiteurs, pas de structure de colonnes.

  • Les tableaux JSON gèrent des données hétérogènes et des objets imbriqués.
  • Le CSV est la norme pour les exportations de tableurs et de bases de données.
  • Les listes à lignes sont idéales pour les collections simples et ordonnées comme les adresses e-mail ou les noms de fichiers.
Exemple de tableau JSON
["apple", "banana", "cherry"]
Exemple CSV
fruit,quantity
apple,3
banana,5
cherry,2
Exemple de liste à lignes
apple
banana
cherry

Travailler avec les tableaux JSON

Les tableaux JSON sont largement utilisés dans les API Web et les fichiers de configuration car ils prennent en charge les structures imbriquées. Un tableau peut contenir des objets avec plusieurs propriétés, ce qui facilite la représentation d'entités réelles. Le format est strict : les virgules finales, les clés non guillemetées ou les crochets mal assortis entraîneront des erreurs d'analyse.

Pour les listes simples, JSON est plus verbeux qu'une liste à lignes, mais sa lisibilité par machine et sa prise en charge de divers types de données l'emportent souvent sur la lourdeur. L'échappement est géré avec des barres obliques inverses dans les chaînes : les guillemets doubles deviennent \", les barres obliques inverses deviennent \\, et les nouvelles lignes deviennent \n.

  • Avantages : prend en charge l'imbrication complexe, indépendant du langage, auto-descriptif.
  • Inconvénients : plus verbeux, nécessite une validation, moins modifiable par l'homme pour les grands ensembles de données.
Tableau JSON d'objets
[
  {"name": "Alice", "email": "[email protected]"},
  {"name": "Bob", "email": "[email protected]"}
]
JSON avec caractères échappés
["line1\nline2", "path\\to\\file", "She said \"hello\""]

Travailler avec le CSV

Les fichiers CSV sont la norme de facto pour l'échange de données entre les tableurs et les bases de données. Chaque ligne représente un enregistrement et les champs sont séparés par un délimiteur — généralement une virgule, bien que les points-virgules soient utilisés dans les régions où la virgule est un séparateur décimal. Selon la RFC 4180, les champs contenant un délimiteur, un guillemet double ou une nouvelle ligne doivent être entourés de guillemets doubles.

Les données dans un CSV sont toujours représentées sous forme de chaînes ; les nombres, les dates et les booléens peuvent être interprétés différemment selon les programmes. Les en-têtes sont courants mais pas obligatoires. Le plus grand défi avec le CSV est la gestion des délimiteurs spécifiques à la locale et de l'encodage (UTF‑8, UTF‑8 BOM ou ISO‑8859‑1).

  • Avantages : natif pour les tableurs, facile à visualiser sous forme de tableau, compact.
  • Inconvénients : types de données limités (toutes des chaînes), pas de structures imbriquées, l'échappement des guillemets peut prêter à confusion.
CSV avec en-têtes et champ guillemeté
"Name","Comment"
"Smith, John","He said ""hello"""

Travailler avec les listes à lignes

Une liste à lignes est le format de données textuel le plus simple : une valeur par ligne, pas de délimiteurs, pas de règles de guillemets. Il est idéal pour les collections d'éléments où chaque élément est une chaîne unique sans nouvelles lignes, comme les adresses e-mail, les noms de domaine, les noms de fichiers ou les codes produits. Le format est extrêmement convivial pour les humains et fonctionne bien avec des outils en ligne de commande comme grep, sort et uniq.

Parce qu'il n'y a pas d'échappement, les listes à lignes ne peuvent pas contenir de valeurs multilignes. Si un élément peut inclure une nouvelle ligne, vous devez soit utiliser un autre format, soit encoder la nouvelle ligne sous forme de barre oblique inverse littérale - n (ou un autre espace réservé) par convention. De nombreux éditeurs et systèmes de contrôle de version gèrent proprement les listes à lignes car chaque modification est visible ligne par ligne.

  • Avantages : lisible par l'homme, facile à trier et à dédupliquer, pas d'échappement pour les valeurs typiques.
  • Inconvénients : ne convient que pour les données à champ unique, pas de support pour les éléments multilignes sans conventions.
Liste à lignes d'adresses e-mail
[email protected]
[email protected]
[email protected]

Échappement et guillemets dans les trois formats

Chaque format gère les caractères spéciaux différemment. Dans JSON, toute chaîne peut contenir des séquences échappées par barre oblique inverse : \" pour un guillemet double, \\ pour une barre oblique inverse, \n pour une nouvelle ligne, \t pour une tabulation. L'analyseur interprète toujours ces séquences, ce qui rend JSON sans ambiguïté mais plus difficile à écrire à la main.

Le CSV repose sur des guillemets doubles extérieurs pour protéger les champs qui contiennent des caractères spéciaux. Si un champ contient un guillemet double, il est doublé ("" devient un guillemet littéral simple). Les listes à lignes n'ont aucun mécanisme d'échappement ; si les données contiennent une nouvelle ligne, la structure se brise. Comprendre ces différences est essentiel lors de la conversion entre formats.

  • JSON utilise l'échappement par barre oblique inverse dans les chaînes.
  • CSV utilise le double guillemet pour les champs contenant des virgules, des nouvelles lignes ou des guillemets.
  • Les listes à lignes supposent qu'il n'y a pas de nouvelles lignes dans les données ; les nouvelles lignes intégrées ne sont pas représentables.
Mêmes données en JSON et CSV
JSON: "He said \"hello\"\nand left."
CSV: "He said ""hello""
and left."

Intégration dans les tableurs et import/export

Le CSV est le format le plus simple pour les utilisateurs de tableurs. La plupart des applications de tableur (Microsoft Excel, Google Sheets, LibreOffice Calc) peuvent ouvrir un fichier CSV directement, bien qu'elles puissent mal interpréter le délimiteur ou l'encodage. Pour des résultats cohérents, enregistrez les fichiers CSV en UTF‑8 avec un Byte Order Mark (BOM) et utilisez des virgules (ou des points-virgules selon les régions).

Les tableaux JSON peuvent être importés dans des tableurs à l'aide d'outils intégrés comme Power Query (Excel) ou en écrivant un court script. Les listes à lignes sont souvent collées dans une seule colonne ; vous pouvez avoir besoin d'utiliser la fonction 'Convertir' (ou 'Text to Columns') si la liste contient des délimiteurs. Pour chaque format, méfiez-vous de la conversion automatique des données : les zéros non significatifs dans les nombres, les chaînes de date ou les grands nombres pouvant perdre en précision.

  1. Ouvrez Excel et choisissez Fichier > Ouvrir.
  2. Sélectionnez votre fichier CSV. Si les données apparaissent incorrectement, utilisez l'Assistant Importation de texte pour spécifier le délimiteur et l'encodage.
  3. Pour JSON, utilisez Données > Obtenir des données > À partir d'un fichier > À partir de JSON.
  4. Pour une liste à lignes, collez les données dans une colonne, puis sélectionnez la colonne et utilisez Données > Convertir si vous devez fractionner davantage.
  • CSV : vérifiez le délimiteur et l'encodage des caractères ; UTF-8 avec BOM peut améliorer la compatibilité avec certaines versions d'Excel.
  • JSON : validez la structure avant d'importer pour détecter les erreurs de syntaxe tôt.
  • Liste à lignes : collez dans une colonne au format texte lorsque les zéros non significatifs doivent être préservés.

Pièges courants de conversion et comment les éviter

La conversion entre ces formats entraîne souvent une perte de données si vous n'êtes pas prudent. Aplatir un tableau JSON imbriqué en CSV vous oblige à choisir les propriétés à conserver, en écartant les autres. Lors de la conversion d'une liste à lignes en CSV, chaque ligne devient un champ unique, mais si la ligne contient une virgule ou un guillemet double, elle doit être correctement guillemetée pour rester une seule colonne.

La validation est essentielle. Les fichiers JSON doivent être validés avec un linter pour détecter les virgules finales ou les clés non guillemetées. Les fichiers CSV doivent être vérifiés pour des longueurs de ligne cohérentes et un guillemetage correct. Les listes à lignes doivent avoir des nouvelles lignes finales et aucune ligne vide sauf si intentionnel. L'utilisation d'un outil de conversion dédié peut aider à éviter ces pièges.

  1. 1. Identifiez la structure du format source (plate ou imbriquée).
  2. 2. Si vous convertissez depuis JSON, aplatissez tout objet ou tableau imbriqué.
  3. 3. Pour CSV, assurez-vous que les en-têtes sont présents si nécessaire et que les champs sont correctement guillemetés.
  4. 4. Pour les listes à lignes, confirmez que les éléments ne contiennent pas de nouvelles lignes ; si c'est le cas, encodez-les ou changez de format.
  5. 5. Validez la sortie avec un test d'analyse simple.
  • Aplatissez les objets imbriqués dans JSON avant de convertir en CSV.
  • Guillemetez toujours les champs dans CSV s'ils peuvent contenir des virgules ou des nouvelles lignes.
  • Validez JSON avec un linter avant la conversion.
  • Vérifiez les lignes vides ou les espaces de fin dans les listes à lignes.
Mauvaise conversion : JSON vers CSV sans aplatissement
Source JSON: [{"name": "Alice", "tags": ["dev", "admin"]}]
Flattened CSV: name,tags
Alice,"[""dev"",""admin""]"
Champ CSV correctement guillemeté avec virgule
"Name"
"Smith, John"

Choisir un format : guide de décision

Le meilleur format pour vos données dépend de la manière dont elles seront créées, consommées et maintenues. Utilisez les tableaux JSON lorsque vos données ont des structures imbriquées, ou lorsque vous échangez des données entre des applications qui utilisent déjà JSON. Choisissez CSV lorsque votre public cible utilise des tableurs, ou lorsque vous avez besoin d'un format tabulaire universellement accepté. Optez pour une liste à lignes pour les collections simples et plates que les humains éditeront avec un éditeur de texte basique.

  • Pour les données d'API → JSON.
  • Pour l'importation dans un tableur → CSV.
  • Pour les listes simples (e-mails, codes) → liste à lignes.
  • Pour une interopérabilité maximale → CSV (toutes les applications de tableur le prennent en charge).
  • Pour des diffs favorables au versionnage → liste à lignes.

Conclusion

Choisissez JSON pour les données d'application structurées ou imbriquées, CSV pour les vraies lignes et colonnes, et une liste à lignes pour une collection simple et plate dont les valeurs ne contiennent pas de sauts de ligne. L'échappement et le comportement à l'importation comptent autant que le délimiteur visible.

Les convertisseurs de listes en navigateur sont utiles pour les tableaux JSON primitifs et les changements de délimiteur littéral. Utilisez un analyseur CSV approprié pour les CSV guillemetés ou multilignes et validez le format de destination avant de supprimer la source.

FAQ

Questions fréquemment posées

Puis-je stocker des données imbriquées dans un CSV ?+

Le CSV est strictement plat ; il ne peut pas représenter de tableaux ou d'objets imbriqués. Si vous devez préserver une structure hiérarchique, utilisez JSON ou un format comme YAML.

Pourquoi mes fichiers CSV affichent-ils des caractères illisibles dans Excel ?+

Excel attend souvent l'UTF‑8 avec un Byte Order Mark (BOM) pour les caractères non ASCII. Enregistrez votre CSV en UTF‑8 avec BOM, ou utilisez un point-virgule comme délimiteur si c'est le défaut de votre locale.

Comment convertir un tableau JSON en liste à lignes ?+

Si le tableau contient des valeurs simples (chaînes, nombres), extrayez chaque valeur sur une ligne. Pour les objets, vous devez choisir une propriété à aplatir, en écartant les autres propriétés. Utilisez un outil comme json‑array‑to‑list pour automatiser cela.

À quoi ressemble une virgule dans un champ CSV ?+

Le champ doit être entouré de guillemets doubles, par exemple : "Smith, John". Si le champ contient un guillemet double, représentez-le par deux guillemets doubles : "He said ""hello""".

Est-il sûr d'utiliser une liste à lignes pour des données pouvant contenir des caractères de nouvelle ligne ?+

Non, car une nouvelle ligne briserait la structure. Utilisez soit un format qui prend en charge l'échappement, comme JSON ou CSV, soit encodez les nouvelles lignes comme un espace réservé (par exemple, les caractères littéraux \n) et documentez clairement la convention.

Puis-je utiliser CompareTwoLists pour convertir entre ces formats ?+

CompareTwoLists peut convertir une liste à lignes plate en un tableau JSON de valeurs primitives et vice versa, et il peut joindre ou fractionner du texte avec un délimiteur de virgule littérale. Les outils de virgule ne sont pas des analyseurs CSV complets de style RFC : les champs guillemetés, les délimiteurs intégrés, les en-têtes et les enregistrements multilignes nécessitent une importation dans un tableur ou une véritable bibliothèque CSV.

Outils associés

Outils de liste populaires

Parcourez tous les outils →

Guides

Guides associés

Retour à tous les guides →