Convertisseur JSON vers CSV

Collez un tableau JSON d'objets à gauche, obtenez un CSV correctement guillemeté à droite. En-tête depuis les clés. Sans upload.

  1. Collez un tableau JSON d'objets dans la zone de texte à gauche.
  2. Cliquez sur « Convertir en CSV ». La ligne d'en-tête est construite à partir de l'union des clés des objets.
  3. Copiez le résultat ou téléchargez-le en data.csv.
  4. Pour les valeurs imbriquées, le champ est sérialisé en JSON — aplatissez à l'avance si vous voulez des colonnes plates.
Que fait-il ?

Convertit un tableau JSON d'objets en CSV RFC 4180. La ligne d'en-tête est l'union de toutes les clés. Les valeurs sont guillemetées CSV quand elles contiennent virgules, guillemets ou retours à la ligne. Nombres et booléens sont émis sans guillemets ; null et undefined deviennent des champs vides. Les valeurs imbriquées (objets, tableaux) sont sérialisées en JSON dans un seul champ guillemeté — CSV ne peut pas représenter nativement de hiérarchie.

Exemple

Entrée JSON :

[
  {"name":"Ada","age":36,"role":"engineer"},
  {"name":"Grace","age":40,"role":"scientist"}
]

Sortie CSV :

name,age,role
Ada,36,engineer
Grace,40,scientist

Pièges courants JSON vers CSV

CSV est un format plat. La plupart des sorties « bizarres » viennent de formes JSON qui n'ont pas de représentation plate.

  • Le sommet n'est pas un tableau. Un objet JSON `{"a":1,"b":2}` ne peut pas devenir directement du CSV — encapsulez-le dans un tableau : `[{"a":1,"b":2}]`. Le CSV aura une ligne d'en-tête et une ligne de données.
  • Clés hétérogènes entre lignes. Si le premier objet a `{a,b}` et le second `{a,c}`, l'en-tête est `a,b,c` (l'union). Les lignes sans une clé émettent un champ vide. Pré-traitez si vous voulez un schéma plus strict.
  • Valeurs imbriquées aplaties silencieusement. Un champ comme `{"address":{"city":"NY"}}` devient une seule colonne CSV dont la valeur est la chaîne JSON `{"city":"NY"}`. Pour obtenir des colonnes `address.city` séparées, aplatissez en JavaScript d'abord : `{address_city: row.address.city}`.
  • Retours à la ligne dans les valeurs. Une chaîne multi-ligne dans une valeur JSON devient un champ CSV guillemeté avec des `\n` littéraux entre les guillemets. La plupart des tableurs gèrent correctement ; certains outils anciens non.
  • Caractères spéciaux dans les en-têtes. Les clés JSON avec virgules, guillemets ou retours à la ligne fonctionnent mais produisent une ligne d'en-tête que certains consommateurs CSV parsent mal. Renommez les clés en alphanumérique + underscore avant conversion si vous voulez la compatibilité maximale.
  • Virgule finale en JSON. `[{"a":1},]` est du JSON invalide (virgule en trop après le dernier élément). Le parser le rejette avant l'étape CSV. La plupart des formateurs JSON les retirent — passez par `/json-prettifier` si besoin.
Questions fréquentes

Comment obtenir une sortie séparée par tabulation (TSV) ?

Cette page émet du CSV séparé par virgules. Pour du TSV, remplacez `,` par `\t` dans le résultat, ou exécutez PapaParse avec `delimiter: "\t"` en ligne de commande — même bibliothèque.

L'ordre des clés est-il préservé dans la ligne d'en-tête ?

Oui — l'en-tête utilise l'ordre dans lequel les clés apparaissent pour la première fois dans tous les objets. Pour un ordre alphabétique, triez les clés dans votre JSON avant de coller.

Comment les dates sont-elles gérées ?

JSON n'a pas de type Date natif — les dates sont généralement déjà sérialisées en chaînes ISO 8601. Elles passent sans changement. Si votre JSON vient de JSON.stringify d'un Date, il a déjà été converti en chaîne ISO à ce moment-là.

Puis-je faire un aller-retour JSON → CSV → JSON ?

Pour les données « tableau d'objets plats », oui. Les chaînes restent chaînes, les nombres restent nombres (avec le typage dynamique de PapaParse à l'import). Les valeurs imbriquées perdent leur structure côté CSV et reviennent en champs JSON-chaîne, pas en objets imbriqués.

Mon JSON est-il envoyé quelque part ?

Non. Tout s'exécute dans votre navigateur — votre JSON est parsé et converti par le JavaScript de cette page et n'est jamais envoyé à un serveur. Vérifiez dans les outils développeur.

Quelle taille maximale de JSON ?

Jusqu'à environ 50 Mo avant que la zone de texte ne devienne lente. La conversion est linéaire en taille d'entrée ; le goulot est le rendu. Pour des fichiers plus gros, lancez PapaParse en ligne de commande.