Command Palette

Search for a command to run...

Conversion JSON en CSV : 5 méthodes utilisées par les développeurs en 2026

Conversion JSON en CSV : 5 méthodes utilisées par les développeurs en 2026

T
Toolz Team
|Jun 27, 2026|15 min Lire

Fait partie de la collection Outils de données

Convertisseur JSON en CSV

Convertir JSON en CSV en ligne Transforme un tableau d'objets en un fichier prêt pour la feuille de calcul, aplatit les objets imbriqués et échappe aux champs selon la RFC 4180. 100 % côté client, pas d'inscription.

Utiliser Convertisseur JSON en CSV

Le premier convertisseur JSON-CSV que j'ai jamais écrit a duré trois jours en production.

C'était un &quot ; exportation vers tableur&quot ; bouton dans un panneau d'administration Laravel, et ma logique de conversion était - I&#39 ; je ne suis pas fier de ça - values.join(","). Il a navigué à travers les tests. Un utilisateur a ensuite exporté une liste de clients où une entreprise a été nommée "Smith, Jones & Partenaires", et chaque colonne après avoir déplacé une position vers la droite. Leur comptable a importé 340 lignes de données mal alignées avant que quiconque ne remarque les numéros de téléphone dans la colonne des e-mails.

La virgule en CSV n'est pas un séparateur, vous pouvez vous joindre à la chaîne. C'est une grammaire, définie dans RFC 4180, avec des règles d'échappement réelles. Ce bug est la raison pour laquelle le Convertisseur JSON en CSV J'ai ensuite construit pour Toolz.dev traite l'évasion comme non négociable - et pourquoi ce guide passe du temps réel sur les cas extrêmes, pas seulement sur le chemin heureux.

Voici les cinq méthodes que j'utilise réellement, lorsque chacune gagne et où chacune mord.

tl;dr : Pour les conversions ponctuelles, collez votre JSON dans le Convertisseur JSON en CSV d'outils.dev- il aplatit les objets imbriqués avec une notation par points, s'échappe correctement selon la RFC 4180 et s'exécute à 100 % dans votre navigateur. Pour les tâches récurrentes, écrivez-le : pd.json_normalize() en python ou le json2csv package dans le nœud. valider avec le Formateur JSON premièrement, conserver l’aplatissement JSON - CSV d’origine est à sens unique.


Pourquoi avez-vous besoin de CSV alors que vous avez déjà JSON ?

Parce que les personnes qui ont besoin de vos données ne vivent pas dans votre terminal. Chaque demande de conversion que j'ai reçue est réduite à l'une des cinq situations :

Les analystes travaillent dans des tableurs. Excel, Google Sheets, Tableau, Power BI - ils inhalent tous le CSV de manière native et s'étouffent sur JSON imbriqué La conversion de la sortie de l'API en CSV est la façon dont les données d'ingénierie atteignent le côté commercial.

Bases de données Importer des fichiers plats en bloc. PostgreSQL COPY et mysql LOAD DATA Vous voulez une entrée tabulaire. Les colonnes JSON existent, mais le chargement dans de vraies tables relationnelles signifie d'abord s'aplatir.

Les migrations ont besoin d'une lingua franca. Déplacement des données entre un magasin NoSQL et une plateforme relationnelle, ou entre deux plates-formes SaaS, CSV est le format que les deux bouts comprennent de manière fiable.

La conformité aime les fichiers plats. Certaines exigences d'archivage spécifient des formats lisibles par l'homme. Un CSV s'ouvre dans n'importe quoi, dans des décennies.

Les parties prenantes ne peuvent pas lire JSON. Un chef de produit demandant "puis-je obtenir cela comme feuille de calcul ?" est le déclencheur le plus courant. C'était le déclencheur de mon bouton d'exportation cassé.

Diagram showing JSON data flowing through conversion to CSV format with use cases branching to spreadsheets, databases, and analytics


Qu'est-ce qui rend la conversion JSON-CSV difficile ?

Le JSON plat est trivial. ceci :

[
  {"id": 1, "name": "Alice", "email": "[email protected]", "age": 30},
  {"id": 2, "name": "Bob", "email": "[email protected]", "age": 25}
]

devient ceci, les clés des en-têtes, les éléments des lignes :

id,name,email,age
1,Alice,[email protected],30
2,Bob,[email protected],25

Mais les réponses réelles à l'API ne sont jamais plates. Ils ressemblent à ceci :

[
  {
    "id": 1,
    "name": "Alice",
    "address": {"street": "123 Main St", "city": "San Francisco", "state": "CA"},
    "skills": ["JavaScript", "Python", "Go"]
  }
]

CSV n'a aucun concept de "à l'intérieur". Vous choisissez donc une stratégie d'aplatissement, et chacun a un coût :

Aplatissement par notation des points- les clés imbriquées deviennent des en-têtes composés :

id,name,address.street,address.city,address.state,skills
1,Alice,123 Main St,San Francisco,CA,"JavaScript; Python; Go"

Colonnes indexées pour les tableaux- skills.0, skills.1, skills.2. Prévisible, mais un record avec 14 compétences produit 14 colonnes pour tout le monde.

Cellules codées JSON- fourrer le JSON brut dans la cellule, double-cité Sans perte, illisible, et ça rend les analystes tristes.

La notation par points avec tableaux joints est la bonne valeur par défaut pour la consommation humaine - it&#39 ; c'est quoi le Convertisseur Toolz.dev produit. Les colonnes indexées gagnent lorsque le code en aval nécessite chaque élément adressable. JSON-In-Cells est un dernier recours pour l'aller-retour.


Méthode 1 : Comment convertir JSON en CSV en ligne ?

Idéal pour : Conversions uniques, non-développeurs, tout ce qui est inférieur à quelques dizaines de Mo.

  1. Ouvrez le Convertisseur JSON en CSV.
  2. Collez votre JSON - un tableau d'objets, ou un seul objet.
  3. L'outil détecte la structure, aplatit les objets imbriqués en points et rend le CSV instantanément.
  4. copiez-le ou téléchargez le .csv.

La raison pour laquelle je m'y mets par défaut sur un script pour tout ce qui n'est pas récurrent : configuration zéro, échappement correct de la RFC 4180 (apprentissage de cette leçon), union automatique des clés sur des objets incohérents et - parce que c'est le & #39 ; côté client - la réponse API pleine d'e-mails clients que vous venez de coller ne quitte jamais votre machine. Regardez l'onglet Réseau si vous ne faites pas de don&#39 ; ne me croyez pas ; c'est le test que j'applique à chaque convertisseur en ligne, et la plupart l'échouent.

Là où ce n'est pas le mauvais outil : des conversions récurrentes (script) et une nidification profondément pathologique où vous voudrez choisir la stratégie d'aplatissement.

Diagram of the toolz.dev JSON to CSV converter showing JSON input on the left and CSV output on the right


Méthode 2 : Comment convertir JSON en CSV en JavaScript ?

Idéal pour : Créez des pipelines, des services de nœuds, une logique de transformation personnalisée.

Here&#39 ; est la version minimale correcte - notez la fuite, qui est la partie que mon désastre de trois jours a sautée :

function jsonToCsv(jsonArray) {
  if (!jsonArray.length) return "";

  const headers = Object.keys(jsonArray[0]);
  const csvRows = [
    headers.join(","),
    ...jsonArray.map(row =>
      headers.map(header => {
        const value = row[header] ?? "";
        // RFC 4180: double embedded quotes, wrap anything containing , " or newline
        const escaped = String(value).replace(/"/g, '""');
        return /[,"\n\r]/.test(escaped) ? `"${escaped}"` : escaped;
      }).join(",")
    )
  ];

  return csvRows.join("\n");
}

Pour les entrées imbriquées, aplatissez d'abord et unionnez les clés - prendre les en-têtes uniquement du premier objet est le deuxième bug le plus courant dans les convertisseurs laminés à la main :

function flattenObject(obj, prefix = "") {
  const result = {};
  for (const [key, value] of Object.entries(obj)) {
    const newKey = prefix ? `${prefix}.${key}` : key;
    if (value && typeof value === "object" && !Array.isArray(value)) {
      Object.assign(result, flattenObject(value, newKey));
    } else if (Array.isArray(value)) {
      result[newKey] = value.join("; ");
    } else {
      result[newKey] = value;
    }
  }
  return result;
}

function nestedJsonToCsv(jsonArray) {
  const flattened = jsonArray.map(item => flattenObject(item));
  // Union of ALL keys, not just the first object's
  const headers = [...new Set(flattened.flatMap(Object.keys))];
  // ...then emit rows exactly as in jsonToCsv above
}

Ou sautez le roulement à la main - le json2csv Le package gère ces bords depuis des années :

import { Parser } from "json2csv";

const parser = new Parser({ flatten: true });
const csv = parser.parse(data);

Méthode 3 : Comment convertir JSON en CSV en Python ?

Idéal pour : Flux de travail de la science des données, tout ce qui touche déjà les pandas.

Le one-liner Pandas couvre le JSON plat :

import pandas as pd

df = pd.read_json("data.json")
df.to_csv("output.csv", index=False)

La fonction véritablement utile est pd.json_normalize()- spécialement conçu pour les réponses API imbriquées :

import pandas as pd
import requests

response = requests.get("https://api.example.com/users")
df = pd.json_normalize(response.json())
print(df.columns.tolist())
# ['id', 'name', 'skills', 'address.street', 'address.city', 'address.state']

# Arrays still need a decision — join them explicitly:
df["skills"] = df["skills"].apply(lambda x: "; ".join(x) if isinstance(x, list) else x)
df.to_csv("output.csv", index=False)

Notez que json_normalize Aplatit niché objets Mais part tableaux comme listes Python - si vous sautez l'étape de jointure, vos cellules CSV contiennent ['JavaScript', 'Python'] Verbatim. Tout le monde frappe ça une fois.

Pas de pandas disponibles ? La bibliothèque standard gère bien la plate-forme JSON :

import json, csv

with open("data.json") as f:
    data = json.load(f)

with open("output.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

Méthode 4 : Comment convertir JSON en CSV à partir de la ligne de commande ?

Idéal pour : Scripts shell, pipelines CI, serveurs où l'installation de Pandas est exagérée.

jq Est-ce qu'il est nativement avec @csv, qui s'échappe correctement :

cat data.json | jq -r '
  (.[0] | keys_unsorted) as $keys |
  ($keys | @csv),
  (.[] | [.[$keys[]]] | @csv)
'

csvkit's in2csv est l'option peu réfléchie :

pip install csvkit
in2csv data.json > output.csv

et Miller (mlr) brille lorsque vous souhaitez filtrer dans le même pass :

mlr --json2csv filter '$age > 25' data.json > output.csv

La composabilité est le point - curl -s api.example.com/data | jq ... > report.csv est un pipeline API-Spreadsheet complet dans une seule ligne de cron.


Méthode 5 : pouvez-vous importer JSON directement dans Excel ou Google Sheets ?

Idéal pour : Non-développeurs, données rafraîchissantes en direct, importations ponctuelles.

Excel : Données → Obtenir des données → depuis le Web, coller l'URL de l'API et Power Query vous donne un éditeur visuel pour développer les enregistrements imbriqués avant le chargement. Vraiment bon pour les rafraîchissements répétés de la même source.

Fiches Google : Extensions → Apps Script, puis une petite fonction de récupération :

function importJSON(url) {
  const response = UrlFetchApp.fetch(url);
  const data = JSON.parse(response.getContentText());
  if (!Array.isArray(data) || data.length === 0) return [["No data"]];
  const headers = Object.keys(data[0]);
  const rows = data.map(item => headers.map(h => item[h] ?? ""));
  return [headers, ...rows];
}

utilisé dans une cellule comme =importJSON("https://api.example.com/data").

Take honnête : pour les importations ponctuelles, convertir avec le Outil en ligne Et l'ouverture du CSV est plus rapide que l'un ou l'autre. Les itinéraires natifs de la feuille de calcul ne gagnent leur coût d'installation que lorsque les données sont actualisées selon un calendrier.


Quelle méthode choisir ?

méthode installation JSON imbriqué Utilisation récurrente Les données restent locales
Convertisseur en ligne nul automatique manuel à chaque fois Oui - côté client
Javascript / JSON2CSV installation npm par flatten excellent oui
Python / Pandas installation pip json_normalize excellent oui
JQ / CSVKIT / MLR Gestionnaire de packages Chemins manuels Excellent (cron/ci) oui
Excel / Feuilles Compte/application Interface utilisateur de la requête Power Bon (rafraîchissement automatique) Excel : Oui ; Feuilles : serveurs Google

Ma règle : atteindre l'outil de navigation jusqu'à la troisième fois I&#39 ; m en convertissant la même forme de données - puis cela devient un script.


Quels cas de bord cassent la conversion JSON-CSV ?

Quatre pièges représentent presque toutes les exportations cassées que j'ai déboguées :

Clés incohérentes. L'objet 1 a email, l'objet 2 a phone, l'objet 3 a les deux Prenez les en-têtes du premier objet uniquement et vous déposez silencieusement les données Le correctif est une union de clés sur tous les objets, avec des valeurs manquantes comme cellules vides - ce que font automatiquement les bons outils.

Caractères spéciaux non échappés. Le "smith, Jones & Partenaires" problème. Par RFC 4180 : envelopper les valeurs contenant des virgules, des devis ou des nouvelles lignes entre guillemets et doubler les devis intégrés ("He said ""hello""").

gros fichiers. Au-delà d'une centaine de Mo, l'analyse de fichiers entiers devient douloureuse. Diffuser à la place - jq Les flux, les Pandas sont en cours de lecture et le format de lignes JSON (un objet par ligne) facilite les deux. Pour les fichiers jusqu'à quelques dizaines de Mo, l'outil de navigation est correct car il n'y a pas de téléchargement.

Encodage. Les noms et adresses portent des caractères non ASCII. Gardez tout de bout en bout UTF-8 et méfiez-vous d'Excel sur Windows, qui souhaitait historiquement qu'une nomenclature détecte UTF-8 correctement.

Et une pratique qui n'est pas facultative : Validez avant de convertir. Un fichier JSON tronqué échoue de manière confuse à mi-conversion, mais évidemment dans le Formateur JSON. Trente secondes de validation bat dix minutes de "pourquoi mon CSV est-il vide".


Questions fréquentes

Comment convertir gratuitement JSON en CSV en ligne ?

Collez votre JSON dans le Convertisseur JSON en CSV sur Toolz.dev- il génère instantanément CSV avec des objets imbriqués aplatis et s'échappant manipulés, puis vous permet de copier ou télécharger le résultat Pas d'inscription, et le traitement est 100 % côté client, donc vos données ne quittent jamais votre navigateur.

Puis-je convertir JSON imbriqué en CSV ?

Oui. Les objets imbriqués s'aplatissent sur des en-têtes de notation de points (address.city), et les tableaux sont soit joints à une chaîne délimitée, soit divisés en colonnes indexées. le Convertisseur Toolz.dev Applique la notation par points automatiquement; en Python, pd.json_normalize() fait de même.

Comment convertir un fichier JSON en CSV en Python ?

import pandas as pd; pd.read_json("data.json").to_csv("output.csv", index=False) Pour JSON plat. Pour les structures imbriquées, utilisez pd.json_normalize(data) tout d'abord - et n'oubliez pas de rejoindre vous-même les colonnes du tableau, car normalisez les listes de feuilles intactes.

Quel est le meilleur moyen de convertir des fichiers JSON très volumineux ?

Diffusez plutôt que de charger : jq Sur la ligne de commande, ou pandas avec des lectures en morceaux. La conversion du fichier en lignes JSON (un objet par ligne) rend d'abord la diffusion en continu beaucoup plus simple. Les outils du navigateur sont confortables jusqu'à quelques dizaines de Mo; au-delà de ~100 Mo, utilisez la ligne de commande.

Comment reconvertir CSV en JSON ?

le Convertisseur CSV en JSON inverse le voyage - chaque ligne devient un objet saisi par la ligne d'en-tête Programmatiquement : pd.read_csv("data.csv").to_json(orient="records").

Pourquoi mon CSV a-t-il des devis autour de certaines valeurs ?

C'est un comportement correct, pas un bug. La RFC 4180 nécessite des guillemets doubles autour de n'importe quelle valeur contenant des virgules, des nouvelles lignes ou des devis, avec des devis intégrés doublés. Les feuilles de calcul et les analyseurs les stripent sur Read.

La conversion JSON-CSV est-elle sans perte ?

Pour JSON plat, oui. Pour JSON imbriqué, les valeurs survivent mais la hiérarchie ne le fait pas. &#39 ; t - les en-têtes de notation de points sont aplatis interprétation, et vous ne pouvez pas toujours reconstruire la nidification exacte d'origine. Conservez le JSON source ; traitez le CSV comme une vue dérivée.

Pourquoi mes colonnes sont-elles mal alignées après la conversion ?

Presque toujours un échec d'échappement : une valeur contenant une virgule était & #39 ; t cité, donc les analyseurs voient des colonnes supplémentaires à partir de ce moment-là It&#39 ; est le bug exact de mon bouton d'exportation Laravel Utilisez un convertisseur qui implémente la RFC 4180 plutôt que les valeurs de jonction de chaînes - et si vous avez écrit la vôtre, testez-la avec une valeur comme Smith, Jones & Partners.

Comment convertir JSON en CSV dans Excel ou Google Sheets ?

Les deux applications importent JSON via un assistant plutôt qu'un collage. Dans Excel, utilisez les données → Obtenir des données → à partir du fichier → de JSON, puis aplatissez la requête dans Power Query et fermez et chargez. Dans Google Sheets, collez de petits tableaux dans un script d'applications temporaires ou convertissez-les avec le Convertisseur JSON en CSV tout d'abord et ouvrez le fichier résultant - généralement le chemin le plus rapide pour un simple.

Quelle méthode JSON à CSV dois-je utiliser ?

Pour un ponctuel rapide, un convertisseur côté client est le plus rapide et conserve les données privées. Pour les pipelines répétables, utilisez Python avec Pandas ; pour les fichiers énormes, diffusez avec jq sur la ligne de commande, et recherchez l'importation de la feuille de calcul uniquement lorsque les non-développeurs possèdent le flux de travail. Faites correspondre l'outil à la fréquence à laquelle vous répéterez le travail, pas à la taille du fichier.


Associez la méthode au travail

JSON-to-CSV ressemble à une seule ligne résolue jusqu'à ce qu'une virgule dans un nom d'entreprise décale 340 lignes de données client d'une colonne vers la droite. La méthode compte moins que le respect du format : évasion selon la RFC 4180, unissez vos clés, décidez exprès de votre stratégie d'aplatissement et conservez le JSON d'origine.

Pour la prochaine conversion ponctuelle, la Convertisseur JSON en CSV est le chemin de quinze secondes. valider d'abord avec le Formateur JSON, et lorsque les données doivent revenir, le Convertisseur CSV en JSON ferme la boucle - les trois dans votre navigateur, aucun d'entre eux n'a jamais vu votre côté serveur de données.


Articles connexes :

Frequently Asked Questions

Paste your JSON into the JSON to CSV Converter on toolz.dev — it instantly generates CSV with nested objects flattened and escaping handled, then lets you copy or download the result. No signup, and processing is 100% client-side, so your data never leaves your browser.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!