Convertisseur JSON vers CSV
Convertissez instantanément vos JSON en CSV. Téléversez des tableaux JSON ou des objets, choisissez le séparateur et téléchargez un CSV, sans envoyer vos données sur un serveur.
À propos du convertisseur JSON vers CSV
JSON to CSV Converter transforme gratuitement vos données JSON (JavaScript Object Notation) en CSV (Comma-Separated Values). Téléversez un fichier ou collez vos données, choisissez votre séparateur puis téléchargez le CSV généré, sans sortir du navigateur.
Comment gérer le JSON imbriqué lors de la conversion en CSV ?
CSV est fondamentalement plat — chaque ligne est une séquence de valeurs scalaires — alors que JSON permet une imbrication arbitraire. Le convertisseur propose trois stratégies. L'aplatissement par notation pointée transforme {"user":{"name":"Alice","age":30}} en colonnes user.name et user.age, le choix le plus courant pour l'analytique. L'aplatissement en chaîne JSON conserve l'objet imbriqué comme une seule valeur JSON entre guillemets dans une colonne, utile pour faire un aller-retour du document ou le charger dans une base avec type de colonne JSON. L'explosion de tableau (parfois appelée unwind, d'après l'opérateur $unwind de MongoDB) duplique la ligne parente une fois par élément du tableau imbriqué, adaptée quand chaque élément de tableau doit devenir son propre enregistrement. Pour des structures profondément imbriquées ou récursives, envisagez plutôt d'exporter en NDJSON — la RFC 4180 n'a jamais été conçue pour des données hiérarchiques et la forcer perd toujours de l'information.
Que faire si mes objets JSON ont des clés différentes d'un enregistrement à l'autre ?
C'est le problème d'hétérogénéité de schéma et c'est la règle, pas l'exception, avec le JSON d'API réelles. Le convertisseur scanne chaque enregistrement pour calculer l'union de toutes les clés, puis émet une seule ligne d'en-tête contenant chaque clé trouvée et écrit une valeur vide dans les cellules où un enregistrement particulier n'avait pas de valeur pour cette colonne. Le résultat est un CSV creux mais rectangulaire que tout tableur et importateur SQL peut lire. Si vous ne voulez que les clés présentes dans le premier enregistrement (utile quand les enregistrements suivants ont des champs supplémentaires parasites à ignorer), activez « Utiliser le schéma du premier enregistrement ». Si les enregistrements ont des formes réellement incompatibles — disons que la moitié sont des utilisateurs et l'autre des commandes — divisez l'entrée en deux passes et produisez deux CSV plutôt que de les forcer ensemble.
Comment sont gérés les tableaux de primitifs comme ["red", "green", "blue"] ?
Par défaut, un tableau de primitifs est joint en une seule cellule avec un séparateur configurable (virgule, point-virgule ou pipe) — donc ["red","green","blue"] devient red;green;blue si vous choisissez le point-virgule. Cela maintient le nombre de lignes stable mais rend le parsing en aval dans Excel pénible car Excel ne peut pas facilement diviser une seule cellule. L'alternative est l'explosion de tableau : la ligne est dupliquée trois fois avec une couleur par ligne, donnant un tableau soigné au format long familier aux utilisateurs de Pandas et R. Une troisième option est les colonnes indexées : le tableau devient les colonnes colors.0, colors.1, colors.2, ce qui préserve l'ordre et est réversible mais gaspille de l'espace quand les longueurs de tableau varient beaucoup. Choisissez l'option que votre outil en aval — Excel, SQL, dashboard BI — gère le mieux.
Pourquoi Excel massacre-t-il les caractères UTF-8 comme é, ñ ou 中 dans mon CSV exporté ?
Excel pour Windows ouvre historiquement les fichiers CSV en utilisant la page de codes système par défaut (souvent Windows-1252 dans les locales occidentales) au lieu de l'UTF-8, ce qui corrompt tout caractère non-ASCII. La solution standard est d'ajouter un BOM UTF-8 (EF BB BF) en tête du fichier — ce BOM dit à Excel « interprète ceci comme UTF-8 » et les caractères s'affichent correctement. Ce convertisseur propose une option « UTF-8 avec BOM » dans les paramètres de sortie, activée par défaut pour la compatibilité. Excel moderne (365 et 2021+) et toutes les versions Excel pour Mac gèrent correctement l'UTF-8 sans BOM. Si vous contrôlez le flux du destinataire, préférez importer via l'assistant Excel « Données → À partir du texte/CSV » et sélectionner explicitement la page de codes 65001 (UTF-8) — cette voie fonctionne pour toute version Excel sans modifier le fichier.

Comment le convertisseur échappe-t-il les valeurs contenant virgules, guillemets ou sauts de ligne ?
Le convertisseur suit strictement la RFC 4180. Tout champ contenant le séparateur, un guillemet double ou un saut de ligne (LF, CR ou CRLF) est entouré de guillemets doubles, et chaque guillemet double littéral à l'intérieur du champ est doublé. Par exemple, la chaîne Elle a dit « va, maintenant » avec un saut de ligne intégré est encodée comme "Elle a dit ""va, maintenant""\n" avec un vrai saut de ligne dans les guillemets. Cela produit un fichier qui fait l'aller-retour fidèlement par Excel, Google Sheets, LibreOffice, Pandas read_csv et PostgreSQL COPY — pourvu que ces lecteurs suivent aussi la RFC 4180, ce que tous les outils modernes font. Si vous visez un lecteur ancien non conforme, vous pouvez basculer le convertisseur en mode « toujours citer », qui entoure chaque champ sans condition et est le paramètre le plus sûr pour tout consommateur inconnu.
Puis-je choisir quels champs JSON deviennent des colonnes CSV et dans quel ordre ?
Oui. Par défaut, les colonnes apparaissent dans l'ordre où les clés sont rencontrées la première fois lors du parcours de l'entrée par le convertisseur, mais vous pouvez complètement remplacer cela. Le panneau « Sélecteur de colonnes » liste chaque clé détectée (avec des chemins pointés pour les champs imbriqués) et permet de glisser-réordonner, masquer des colonnes non voulues et renommer les en-têtes sans changer le chemin JSON sous-jacent. Vous pouvez aussi coller une liste ordonnée explicite de colonnes depuis un modèle si vous avez besoin que la sortie corresponde à un schéma existant comme un format d'import en aval. Le renommage est purement cosmétique et le chemin JSON original est préservé en interne, donc relancer la conversion sur une entrée rafraîchie produit la même forme de colonne.
Quelle est la meilleure façon de convertir un fichier JSON de plusieurs gigaoctets en CSV ?
Charger un document JSON de plusieurs gigaoctets dans un navigateur épuisera la mémoire bien avant que le convertisseur ne fasse quoi que ce soit d'utile. La bonne approche est la conversion par streaming en ligne de commande : jq -r 'paths(scalars) as $p | [($p|join(".")), getpath($p)] | @csv' est un one-liner pour les documents presque plats, et des outils comme Miller (mlr --ijson --ocsv cat input.json > output.csv), DuckDB (COPY (SELECT * FROM read_json_auto('input.json')) TO 'out.csv' (FORMAT CSV)) et la bibliothèque Python ijson parcourent le document événement par événement sans le matérialiser. Si la source est déjà NDJSON (un objet JSON par ligne), il suffit de le faire passer par Miller ou jq ligne par ligne pour une scalabilité quasi illimitée. Utilisez ce convertisseur navigateur pour les documents jusqu'à environ 50 Mo ; basculez sur le streaming en ligne de commande au-delà.
Comment préserver les types de données JSON comme booléens, nulls et nombres dans le CSV ?
CSV n'a pas de système de types — chaque cellule est du texte — donc le convertisseur choisit des représentations textuelles. Les booléens deviennent les chaînes littérales true et false (configurables en 1/0, Oui/Non ou True/False). Null devient une cellule vide par défaut ; beaucoup d'importateurs SQL traitent automatiquement les cellules vides comme NULL, mais vous pouvez choisir d'émettre la chaîne littérale null ou une sentinelle comme \N (par défaut de COPY Postgres) si vous devez distinguer chaîne vide et null à l'import. Les nombres sont émis dans leur forme décimale native, ce qui convient pour la plupart des valeurs, mais les grands entiers au-delà de Number.MAX_SAFE_INTEGER (2^53 − 1) subissent la perte de précision JavaScript standard — si votre JSON cite les grands entiers comme chaînes ("id": "9007199254740993"), ce convertisseur préserve la forme chaîne inchangée et votre système aval peut les reparser avec BigInt.
