Outils
Guides

Convertisseur JSON vers CSV

JSON

Aplatit un tableau d'objets JSON en CSV avec guillemets RFC 4180. Télécharge le résultat.

100 % côté client Sans backend
Entrée
Sortie
Sur cette page

Qu’est-ce qu’un convertisseur JSON vers CSV ?#

Un convertisseur JSON vers CSV prend un tableau JSON d’objets — la forme que la plupart des API et bases de données émettent quand elles renvoient des lignes — et l’écrit comme du texte CSV, des valeurs séparées par des virgules. Chaque objet devient une ligne, chaque clé de premier niveau devient une colonne, et la première ligne contient les noms des champs. Le résultat est du texte brut que les tableurs, les outils de données et les bases de données importent directement.

Le CSV a l’air trivial jusqu’à ce que vous ayez à le produire correctement. Le format qui fonctionne partout est RFC 4180 : les champs contenant une virgule, un guillemet double ou un saut de ligne doivent être enveloppés dans des guillemets doubles, et tout guillemet double déjà présent dans le champ doit être doublé (""). Les lignes sont séparées par CRLF, pas par un simple saut de ligne. Une seule de ces règles enfreinte, et un nom comme Smith, John ou une valeur comme He said "hi" corrompt silencieusement les colonnes en aval — le tableur voit une colonne en trop ou tronque un champ.

Ce convertisseur gère tout cela pour vous, et fait aussi face au fait fâcheux que JSON est hiérarchique et CSV est plat : les objets imbriqués sont aplatis en colonnes à notation pointée (address.city), et les champs de type tableau ou objet qui ne peuvent être aplatis sont sérialisés comme texte JSON dans leur cellule. Vous choisissez aussi le délimiteur — virgule, point-virgule, tabulation ou barre verticale — parce que « CSV » signifie des choses différentes selon les locales.

Mode d’emploi#

  1. Collez un tableau JSON d’objets dans le panneau Entrée à gauche. Un objet isolé, ou un objet enveloppant les lignes sous une clé unique comme {"data": [...]}, est également accepté.
  2. Choisissez le Délimiteur, (par défaut), ;, Tab ou |. Le point-virgule est ce que beaucoup de locales européennes attendent d’Excel ; la tabulation donne du TSV.
  3. Cochez Aplatir l’imbrication (activé par défaut) pour déployer les objets imbriqués en colonnes à notation pointée. Décochez-le pour conserver les objets imbriqués comme texte JSON dans une seule cellule.
  4. Le CSV apparaît en direct dans le panneau Sortie, avec les guillemets appliqués partout où un champ en a besoin. La ligne d’état indique le nombre de lignes.
  5. Cliquez sur Télécharger pour enregistrer data.csv, ou sur Copier pour placer le texte dans le presse-papiers.
  6. Exemple charge un petit jeu de données à deux lignes ; Effacer réinitialise les deux panneaux.

Principales fonctionnalités#

  • Guillemetage RFC 4180. Les champs sont enveloppés et les guillemets internes doublés exactement quand la spécification l’exige, donc les virgules, guillemets et sauts de ligne dans les valeurs ne cassent jamais la structure des colonnes.
  • Fins de ligne CRLF. La sortie utilise des sauts de ligne de style Windows, ce qui maximise la compatibilité avec Excel et les autres tableurs, sur toutes les plateformes.
  • Choix du délimiteur. Virgule, point-virgule, tabulation ou barre verticale — choisissez celui qu’attend votre outil en aval, et le guillemetage s’adapte au délimiteur choisi.
  • Aplatissement en notation pointée. Les objets imbriqués se déploient en colonnes nommées afin que leurs champs intérieurs puissent exister seuls ; les tableaux et les objets récalcitrants deviennent des cellules de texte JSON plutôt que d’être abandonnés.
  • Colonnes stables sur des lignes inégales. L’en-tête est l’union des clés de chaque ligne dans l’ordre de première apparition, donc les lignes avec des champs supplémentaires ou manquants s’alignent toujours correctement.

Exemple détaillé#

Chargez Exemple et l’entrée est un tableau à deux lignes :

[
  { "name": "Ada Lovelace", "role": "Engineer", "skills": ["math", "logic"] },
  { "name": "Bob",          "role": "PM",       "skills": ["docs"] }
]

Avec le délimiteur réglé sur , et Aplatir l’imbrication activé, les colonnes sont name, role, skills. Le champ skills est un tableau, il est donc sérialisé en texte JSON ; comme ce texte contient des virgules et des guillemets doubles, il est guillemeté et ses guillemets internes sont doublés :

name,role,skills
Ada Lovelace,Engineer,"[""math"",""logic""]"
Bob,PM,"[""docs""]"

Notez deux choses que le convertisseur a faites silencieusement et correctement. Ada Lovelace n’est pas entre guillemets, parce qu’il ne contient qu’un espace — aucun délimiteur, aucun guillemet, aucun saut de ligne — donc l’envelopper serait inutile. Et la cellule skills pour Ada est entre guillemets avec les guillemets internes doublés, parce qu’elle contient à la fois des virgules et des caractères "" qui corrompraient la ligne autrement.

Basculez le Délimiteur sur ; et les virgules à l’intérieur de la cellule skills ne sont plus en conflit avec le séparateur, mais le champ reste guillemeté à cause des guillemets doubles embarqués — le convertisseur met des guillemets chaque fois qu’un déclencheur de la RFC 4180 est présent, pas seulement le délimiteur.

FAQ#

Pourquoi les guillemets doubles dans mes données sont-ils doublés en "" ?#

C’est la règle RFC 4180 pour intégrer un guillemet double littéral à l’intérieur d’un champ entre guillemets : l’écrire deux fois. Une valeur comme He said "hi" devient "He said ""hi""" dans le CSV — les guillemets extérieurs enveloppent le champ (parce qu’il contient un ""), et chaque "" intérieur est doublé pour que l’analyseur sache qu’il s’agit de données, pas de la fin du champ. Les outils qui lisent correctement le CSV restaureront les guillemets simples à l’importation.

Mon champ contient une virgule. Cela va-t-il casser les colonnes ?#

Non. Tout champ qui contient le délimiteur, un guillemet double, un retour chariot ou un saut de ligne est automatiquement enveloppé dans des guillemets doubles, donc une valeur comme Smith, John devient "Smith, John" et reste dans une seule colonne. Vous n’avez rien à échapper à la main.

Pourquoi choisirais-je le point-virgule ou la tabulation plutôt que la virgule ?#

La locale. Excel dans de nombreuses locales européennes utilise ; comme séparateur de liste par défaut, donc un fichier séparé par des virgules s’ouvre avec tout entassé dans une seule colonne jusqu’à ce que vous le réimportiez. Le séparateur tabulation (TSV) est le plus sûr quand vos données peuvent contenir à la fois virgules et points-virgules — les tabulations n’apparaissent quasiment jamais dans les valeurs réelles. Choisissez celui qu’attend votre outil en aval.

Qu’advient-il d’un objet imbriqué ou d’un champ de type tableau ?#

Avec Aplatir l’imbrication activé, un objet imbriqué se déploie en colonnes à notation pointée (address.city, address.zip), donc chaque valeur intérieure obtient sa propre colonne. Un champ de type tableau ne peut pas être aplati en colonnes sans perte, il est donc sérialisé comme texte JSON dans sa cellule — par exemple ["math","logic"]. Rien n’est abandonné ; si vous préférez chaque élément du tableau sur sa propre ligne, restructurez d’abord le JSON.