Aller au contenu
ToolsMinify logo
Tous les articles

JSON vs YAML vs CSV - Quel format de donnees utiliser et quand

Comparez JSON, YAML et CSV sur le meme enregistrement : imbrication, types, commentaires et pieges classiques. Apprenez quand chaque format convient aux APIs, fichiers de config et tableurs - avec des convertisseurs gratuits.

Mis à jour 19 septembre 20268 min de lecture

Utilisez Convertisseur JSON vers CSV - gratuit

Ouvrez l'outil en ligne et appliquez ce que vous avez appris dans ce guide.

Ouvrir Convertisseur JSON vers CSV

JSON, YAML et CSV stockent tous des donnees structurees, mais ils ne sont pas interchangeables. Le meme enregistrement personne parait propre dans les trois - jusqu'a ce que vous ayez besoin d'adresses imbriquees, de booleens types, de commentaires dans la config, ou d'un tableur que votre collegue peut ouvrir dans Excel. Choisissez le mauvais format et vous perdez les types, aplatis des arbres en colonnes maladroites, ou tombez sur une surprise du parseur comme YAML qui transforme le code pays NO en false. Ce guide met JSON vs YAML vs CSV cote a cote, montre quand chacun gagne, et renvoie vers les convertisseurs gratuits sur ToolsMinify.

Reponse rapide

Utilisez JSON pour les APIs et l'echange machine - strict, assez type, et universel. Utilisez YAML pour la config editee par des humains quand vous voulez des commentaires et des ancres, et gardez les documents petits. Utilisez CSV pour les tables plates que les gens ouvrent dans des tableurs. Convertissez entre eux avec le Convertisseur JSON vers CSV et le Convertisseur YAML vers JSON ; nettoyez les payloads avec le Minificateur et formateur JSON.

Le meme enregistrement dans les trois formats

Partez d'un objet : un id, un nom, un flag actif et des tags. Voici a quoi ressemble cet enregistrement dans chaque format pour comparer la syntaxe d'un coup d'oeil.

JSON

  • {"id": 42, "name": "Ada", "active": true, "tags": ["admin", "beta"]}
  • Cles entre guillemets, virgules entre champs, crochets pour les tableaux, true/false/null comme litteraux.
  • Pas de commentaires. Les virgules finales sont invalides en JSON standard.

YAML

  • id: 42
  • name: Ada
  • active: true
  • tags:
  • - admin
  • - beta
  • L'indentation definit la structure. Les guillemets sont souvent optionnels. Les commentaires commencent par #.

CSV

  • id,name,active,tags
  • 42,Ada,true,"admin;beta"
  • Une ligne d'en-tete, puis une ligne par enregistrement. Les tableaux imbriques deviennent une chaine aplati ou des colonnes supplementaires. Pas de types natifs au-dela du texte.

Vous avez deja un tableau JSON d'objets ? Collez-le dans le Convertisseur JSON vers CSV pour produire un tableau compatible tableur. Vous deplacez la config dans l'autre sens ? Utilisez le Convertisseur YAML vers JSON avant un client API qui ne parle que JSON.

JSON : la reference pour les APIs et l'echange

JSON (JavaScript Object Notation) est un sous-ensemble de la syntaxe d'objet JavaScript que chaque langage majeur peut parser. Objets, tableaux, chaines, nombres, booleens et null sont de premiere classe. L'imbrication est illimitee, donc un objet adresse dans un objet utilisateur est naturel. C'est pourquoi les reponses REST et GraphQL, les corps de webhook et beaucoup de stores de config livrent du JSON.

  • Ideal pour : corps de requete et reponse API, clients navigateur et mobile, files de messages, tout ce qui doit faire un aller-retour dans plusieurs langages.
  • Forces : grammaire stricte, types previsibles, excellent outillage, facile a minifier et a formater.
  • Limites : pas de commentaires, pas de chaines multi-lignes sans echappement, pas d'ancres ni de merges. Les humains qui editent de gros JSON a la main obtiennent des diffs bruyants.

Quand un payload arrive sur une seule ligne compressee, ouvrez le Minificateur et formateur JSON pour l'embellir, valider les accolades, puis minifier a nouveau avant envoi.

YAML : la config que les gens editent vraiment

YAML (YAML Ain't Markup Language) est concu pour les humains d'abord. L'indentation remplace la plupart des accolades. Vous pouvez laisser des commentaires avec #, ecrire des blocs multi-lignes avec | ou >, et reutiliser des blocs avec des ancres (&name) et des alias (*name). Cette combinaison a fait de YAML le defaut pour les manifests Kubernetes, Docker Compose, GitHub Actions et beaucoup de fichiers de config d'applications.

Commentaires et ancres

Les commentaires sont la fonctionnalite que JSON n'a pas. Une ligne commencant par # documente pourquoi un timeout est a 30 secondes sans changer les donnees runtime. Les ancres vont plus loin : definissez un bloc logging partage une fois avec &logging, puis tirez-le dans plusieurs services avec *logging, en surchargeant optionnellement des cles avec <<:. Utilisees avec soin, les ancres reduisent la duplication. Utilisees imprudemment, elles rendent les fichiers durs a lire et surprenants a fusionner dans Git.

  • Ideal pour : config de deploiement et CI, feature flags edites par des humains, petits documents ou la lisibilite bat la taille sur le fil.
  • Forces : commentaires, ancres/alias, chaines multi-lignes, moins de bruit de ponctuation.
  • Limites : bugs d'indentation, surprises de typage implicite, et surface d'attaque plus large si vous parsez du YAML non fiable avec des loaders unsafe.

CSV : tables plates pour les tableurs

CSV (Comma-Separated Values) est une grille : colonnes et lignes. Tableurs, outils BI et pipelines de donnees le comprennent. Il n'y a pas d'objet imbrique, pas de type tableau, et en general pas de type booleen - tout est du texte jusqu'a ce que votre importateur le caste. C'est bien quand vos donnees sont deja un tableau d'utilisateurs ou de commandes. Ca casse quand la source est un arbre.

Pourquoi CSV perd les types et l'imbrication

  • Types : "42", 42 et true arrivent tous comme chaines sauf si vous definissez un schema. Les zeros en tete dans les ids et numeros de telephone sont supprimes par Excel.
  • Imbrication : une adresse avec rue et ville devient des colonnes address.street, un blob JSON dans une cellule, ou des lignes parent dupliquees.
  • Tableaux : les tags deviennent souvent une seule cellule avec un delimiteur (admin;beta), a decouper plus tard.
  • Null vs vide : une cellule vide peut signifier null, chaine vide ou colonne manquante - les conventions divergent.

Si votre source est du JSON imbrique, convertissez deliberement avec le Convertisseur JSON vers CSV et decidez comment les tableaux et cles imbriquees doivent s'aplatir avant de remettre le fichier a un tableur.

Quand chaque format est le bon choix

APIs et machine a machine

Preferez JSON. Les clients attendent application/json, l'outillage est partout, et le systeme de types suffit pour la plupart des contrats. YAML comme corps HTTP est rare et en general une erreur. CSV comme reponse API n'a de sens que pour des endpoints d'export en masse qui alimentent Excel ou des entrepots de donnees.

Fichiers de config

Preferez YAML (ou un format type comme TOML) quand des humains editent le fichier et ont besoin de commentaires. Preferez JSON quand la config est generee, validee par un schema, ou surtout editee par des outils. Gardez les documents YAML petits et revus - les ancres profondes et tags custom vieillissent mal.

Tableurs et analytics

Preferez CSV (ou un vrai format tableur) quand le consommateur est Excel, Google Sheets ou un SQL COPY. Aplatissez d'abord votre modele. Gardez JSON comme systeme de record et exportez CSV comme vue.

Regle generale

JSON pour l'echange, YAML pour la config humaine, CSV pour l'export tabulaire. Convertissez a la frontiere - ne forcez pas un format a faire les trois jobs.

Pieges classiques

Le probleme de la Norvege en YAML

En YAML 1.1, plusieurs chaines non quotees sont parsees comme des booleens : yes, no, on, off, true, false (et certaines variantes locales). Le code pays NO pour la Norvege devient le booleen false. Des chaines de version comme 1.10 peuvent devenir des flottants. Quotez les valeurs qui ressemblent a des booleens, nombres ou dates quand ce sont vraiment des chaines : country: "NO". Preferez les parseurs YAML 1.2 quand vous le pouvez, et quotez quand meme les scalaires suspects.

Virgules CSV dans les champs entre guillemets

Les champs qui contiennent des virgules, guillemets ou retours a la ligne doivent etre entoures de guillemets doubles. Un guillemet dans un champ s'echappe en le doublant : "Ada ""Lovelace""". Un split naif sur les virgules casse ces lignes. Utilisez toujours un vrai parseur ou exportateur CSV - y compris quand vous faites un aller-retour via le Convertisseur JSON vers CSV. Les reglages de locale comptent aussi : certaines regions utilisent des separateurs point-virgule alors qu'Excel attend encore des virgules ou l'inverse.

Autres pieges

  • JSON : virgules finales et commentaires de litteraux d'objet JavaScript echouent avec des parseurs stricts.
  • YAML : tabulations vs espaces, loaders unsafe qui executent des tags, et documents enormes qui cachent des erreurs de merge.
  • CSV : pas de standard unique pour l'encodage, le delimiteur ou les fins de ligne ; documentez toujours UTF-8 et votre separateur.

Comparaison cote a cote

  • Imbrication - JSON et YAML : arbres naturels. CSV : aplatir ou perdre la structure.
  • Types - JSON : string, number, bool, null, array, object. YAML : scalaires plus riches (plus surprises). CSV : texte jusqu'au cast.
  • Commentaires - JSON : aucun. YAML : commentaires #. CSV : pas de commentaires standard.
  • Edition humaine - YAML gagne en general ; JSON ok pour petits fichiers ; CSV gagne dans les tableurs.
  • Fil / API - JSON est le defaut. YAML et CSV sont des cas limites.
  • Outillage - convertissez avec JSON vers CSV et YAML vers JSON ; formatez JSON avec le Minificateur et formateur JSON.

Questions frequentes

YAML est-il meilleur que JSON ?

Pour la config editee par des humains avec commentaires, souvent oui. Pour les APIs et l'echange, JSON est meilleur : plus strict, plus previsible, et universellement supporte. Beaucoup d'equipes ecrivent en YAML et compilent ou convertissent en JSON pour le runtime.

Le CSV peut-il representer du JSON imbrique ?

Seulement en aplatissant. Les objets imbriques deviennent des colonnes pointees ou des chaines JSON-dans-une-cellule ; les tableaux deviennent des listes delimitees ou des lignes repetees. Utilisez CSV quand le consommateur a besoin d'un tableau, pas quand vous devez preserver l'arbre complet.

Dois-je stocker la config en JSON ou YAML ?

Si des gens l'editent chaque semaine et laissent des commentaires, YAML (ou TOML). Si un validateur de schema ou du codegen possede le fichier, JSON. Evitez de melanger les deux pour la meme source de verite.

Qu'est-ce que le probleme de la Norvege en YAML ?

NO non quote (et jetons similaires) peut etre parse comme le booleen false en YAML 1.1. Quotez les codes pays et autres scalaires stringy, ou utilisez un parseur YAML 1.2 qui les traite comme des chaines.

Comment convertir entre ces formats ?

Utilisez le Convertisseur YAML vers JSON pour passer de la config a la forme API, et le Convertisseur JSON vers CSV pour l'export tabulaire. Embellissez ou minifiez JSON avec le Minificateur et formateur JSON. Les trois tournent dans votre navigateur.

Convertir JSON, YAML et CSV sur ToolsMinify

Chaque outil ci-dessous tourne entierement dans votre navigateur - gratuit, sans inscription, rien n'est envoye :

Essayer gratuitement

Collez un echantillon dans le Convertisseur JSON vers CSV ou le Convertisseur YAML vers JSON et comparez la sortie. Tout reste sur votre appareil.

Utilisez Convertisseur JSON vers CSV - gratuit

Ouvrez l'outil en ligne et appliquez ce que vous avez appris dans ce guide.

Ouvrir Convertisseur JSON vers CSV

Articles connexes