Convertisseur JSON → CSV, gratuit
Convertissez des tableaux JSON d'objets au format CSV ou TSV.
Comment utiliser
1. Collez un tableau JSON d'objets (ou un seul objet) dans la zone de saisie.
2. Choisissez votre séparateur · virgule pour CSV, tabulation pour TSV, ou un autre format.
3. Cliquez sur Convertir pour générer la sortie CSV.
4. Copiez dans le presse-papiers ou téléchargez sous forme de fichier.
Les objets et tableaux imbriqués sont sérialisés en chaînes JSON dans la sortie CSV. Tout le traitement est côté client · vos données ne quittent jamais votre navigateur.
Pourquoi la conversion JSON-vers-CSV est un workflow si fréquent
Le JSON est le format de payload dominant pour les API web modernes ; le CSV est le format de plus petit dénominateur commun pour les données tabulaires. Excel, Google Sheets, SQL LOAD DATA, R, Pandas, Tableau, Power BI et presque tout pipeline ETL ingèrent le CSV nativement. Donc dès qu'une sortie d'API doit atterrir dans une feuille de calcul pour un interlocuteur, ou dans une base de données pour analyse, il faut bien que quelqu'un aplatisse le JSON en lignes. Cet outil fait cet aplatissement dans votre navigateur, sans aller-retour serveur et sans téléversement de données potentiellement sensibles.
Le format CSV (RFC 4180)
Il n'existe pas de norme CSV formelle unique, mais la RFC 4180 (octobre 2005, « Common Format and MIME Type for Comma-Separated Values (CSV) Files ») est ce qui s'en approche le plus côté référence canonique. Les règles sur lesquelles tout le monde s'accorde :
- Un enregistrement par ligne, séparé par des sauts de ligne. La RFC spécifie CRLF ; la plupart des parseurs modernes acceptent aussi LF.
- Les champs d'un enregistrement sont séparés par un seul caractère délimiteur, une virgule dans la forme canonique, mais un point-virgule, une tabulation ou un pipe est courant dans les variantes régionales et historiques.
- Chaque enregistrement devrait avoir le même nombre de champs. Les valeurs manquantes deviennent des cellules vides ; les délimiteurs en trop sont une erreur.
- La ligne d'en-tête est facultative ; si présente, c'est la première ligne.
- Les champs contenant des virgules, des sauts de ligne ou des guillemets doubles doivent être encadrés par des guillemets doubles.
- Les guillemets doubles inclus dans un champ entre guillemets sont échappés par doublement :
"She said ""hello""". - Le type MIME enregistré pour le CSV est
text/csv.
Pourquoi quatre délimiteurs au lieu d'un
La virgule est le défaut, mais chaque délimiteur résout un problème particulier :
- Virgule (
,), la norme aux États-Unis, au Royaume-Uni et dans les autres locales anglophones. Excel lit du CSV à la virgule quand le réglage régional de l'OS est anglais. Défaut pourapplication/csvdans l'écosystème outillé plus large. - Point-virgule (
;), le défaut de fait en Europe continentale, en Amérique latine et dans d'autres régions où la virgule est le séparateur décimal. Excel utilise le séparateur de liste de l'OS, donc un Excel en locale française ou allemande produit un CSV à point-virgule. - Tabulation, le TSV (tab-separated values) est courant en science des données, en bioinformatique et dans tout contexte où les données contiennent elles-mêmes des virgules (texte libre, adresses).
- Pipe (
|), prisé par certains systèmes d'entreprise historiques où les données peuvent contenir virgules, points-virgules ET tabulations. Rarement le bon premier choix mais utile quand rien d'autre ne fonctionne.
Aplatir du JSON imbriqué : trois stratégies
Le JSON est hiérarchique ; le CSV est plat. Il n'y a pas de mapping généraliste sans perte entre les deux. Quand l'entrée contient des objets ou tableaux imbriqués, tout convertisseur doit faire un choix :
- Inlining sous forme de chaîne JSON. La portion imbriquée est resérialisée en JSON et placée dans une seule cellule CSV. C'est l'approche par défaut de cet outil. Sans perte ; aller-retour sûr ; le consommateur devra parser le JSON interne s'il veut la structure.
- Aplatissement à clés pointées.
{address: {street, city}}devient les colonnesaddress.streetetaddress.city. Lejson_normalizede Pandas fonctionne ainsi. Plus propre pour les analystes mais le nombre de colonnes explose pour les données très imbriquées. - Explosion en lignes. Un tableau devient plusieurs lignes, avec les champs parents répétés.
{name: "Alice", tags: ["a", "b"]}devient deux lignes, toutes deux avecname=Alice. Le meilleur pour les relations un-à-plusieurs ; on perd le modèle mental « un enregistrement par ligne ».
Si vous avez besoin d'une sortie à clés pointées ou avec explosion de lignes, pré-traitez le JSON avant de le coller, soit via un petit script Python/Node, soit avec le json_normalize de Pandas.
En-têtes, aller-retour des types et le piège de l'auto-format d'Excel
Le JSON a un vrai système de types (nombre, chaîne, booléen, null, tableau, objet) ; le CSV n'a que des chaînes. La convention est que le consommateur infère les types depuis le contexte. L'outil génère les en-têtes à partir de l'union de toutes les clés sur l'ensemble des objets d'entrée, laisse les champs manquants en cellules vides, écrit les booléens en true/false et écrit le null JSON en cellule vide.
Excel est serviable d'une manière qui blesse parfois :
- Suppression des zéros initiaux. Une colonne de codes postaux comme
01234s'ouvre en nombre1234. Contournement : préfixer par une apostrophe ('01234) dans le CSV, ou utiliser l'assistant d'importation Excel et fixer explicitement le type Texte. - Conversion automatique en dates. Les chaînes qui ressemblent à des dates (
3/4/5,Mar-23) sont silencieusement converties. Mêmes contournements. - Notation scientifique. Les longs ID numériques (numéros de carte de crédit, grands entiers) sont convertis en
1.23E+15et perdent en précision. JSON peut conserver les nombres jusqu'à 253−1 exactement ; pour plus grand, transmettez la valeur sous forme de chaîne en JSON. - Décalage UTF-8 BOM. Excel sous Windows par défaut Windows-1252 ; ouvrir un CSV UTF-8 sans BOM corrompt les caractères non-ASCII (é, ü, å deviennent du mojibake). Ajouter un BOM UTF-8 (
) au début du fichier corrige cela. Google Sheets gère l'UTF-8 sans BOM correctement, donc le BOM est spécifique à la plateforme.
Injection CSV, une note de sécurité utile à connaître
Si un CSV va être ouvert dans Excel ou Google Sheets, une cellule qui commence par =, +, - ou @ est interprétée comme une formule. La page OWASP CSV Injection documente cette classe d'attaques, une chaîne malicieuse comme =cmd|' /c calc'!A0 dans un champ soumis par un utilisateur peut exécuter des commandes quand un administrateur ouvre l'export. Pratique défensive : préfixer toute cellule commençant par un de ces quatre caractères avec une apostrophe simple, ou l'entourer de guillemets avec apostrophe initiale. Important à savoir si vous exportez du contenu généré par les utilisateurs.
Cas limites courants pris en charge
- Champ contenant le délimiteur, mis automatiquement entre guillemets.
San Francisco, CAdans un CSV à virgule devient"San Francisco, CA". - Champ contenant un saut de ligne littéral, mis entre guillemets ; le contenu multilignes est légal entre guillemets selon la RFC 4180.
- Champ contenant un guillemet double, mis entre guillemets, avec le guillemet intérieur doublé :
She said "yes"devient"She said ""yes""". - Tableaux et objets vides, sérialisés respectivement
[]et{}dans leur cellule. - Enregistrements à clés différentes, l'union de toutes les clés forme la ligne d'en-tête ; les champs manquants sont des cellules vides.
- Objet seul vs tableau, un objet JSON seul devient un CSV à une seule ligne.
Quand utiliser cet outil
- Exporter les réponses d'API pour des interlocuteurs qui veulent une feuille de calcul à trier et filtrer.
- Importer en masse du JSON dans une base SQL via
LOAD DATA INFILE(MySQL) ouCOPY(PostgreSQL). Les deux attendent une entrée en forme CSV. - Analyse rapide dans Excel, Google Sheets, Pandas, R, Tableau ou Power BI.
- Génération de listes de diffusion à partir d'une réponse JSON d'API de contacts.
- Migrer des données entre systèmes qui ne partagent pas d'API mais parlent tous les deux CSV.
- Relire un fichier JSON à l'œil quand il est trop répétitif pour être lu directement, la vue tableur est souvent plus facile.
Confidentialité
Les exports CSV contiennent presque toujours des données personnelles, dossiers clients, données employés, journaux de transactions, listes de contacts. La conversion côté serveur envoie chaque enregistrement à travers l'infrastructure d'un tiers, où elle vit dans les logs de transit, les logs serveurs et possiblement les caches. La conversion côté navigateur garde la donnée sur votre machine. Toute l'étape « aplatir et citer » se passe ici en JavaScript dans votre navigateur ; rien n'est téléversé.
Erreurs courantes
- Mauvais délimiteur pour le destinataire. Envoyer un CSV à virgule à un utilisateur d'Excel français produit un fichier à une seule colonne. Adaptez le délimiteur à la locale du destinataire.
- Coller un seul objet au lieu d'un tableau. Un objet seul devient un CSV à une seule ligne avec en-têtes à partir des clés. Pour plusieurs enregistrements, encapsulez-les dans un tableau.
- Attendre un aplatissement à la Pandas. Les objets imbriqués dans cet outil se sérialisent en chaînes JSON dans les cellules. Pour des colonnes
address.street, aplatissez d'abord. - Utiliser le CSV pour de très grands nombres. JSON représente sûrement les entiers jusqu'à 253−1 (environ 9 quadrillions). Au-delà, transmettez sous forme de chaîne. Excel massacrera les longs ID numériques même quand le CSV les préserve.
- Ouvrir dans Excel sans penser à l'encodage. Les caractères non-ASCII ont besoin du BOM UTF-8 pour Excel sous Windows ; Google Sheets et le Excel moderne pour le web n'en ont pas besoin.
- Exporter du texte utilisateur sans filtrer les préfixes de formule. Les cellules commençant par
=,+,-ou@sont des formules dans Excel et Sheets. L'injection CSV est une vraie attaque contre les administrateurs qui ouvrent les fichiers exportés.
Foire aux questions
Mon JSON a des objets imbriqués. Comment sont-ils gérés ?
Chaque objet ou tableau imbriqué est sérialisé en chaîne JSON à l'intérieur de sa cellule CSV. Donc {user: {name: "Alice", role: "admin"}} devient une colonne user contenant {"name":"Alice","role":"admin"}. Cela fait l'aller-retour sans perte. Pour des colonnes user.name et user.role séparées, pré-traitez avec le json_normalize de Pandas ou un petit script d'aplatissement.
Pourquoi mes caractères non anglais semblent cassés dans Excel ?
Excel sous Windows ouvre les CSV en Windows-1252 par défaut. Un CSV UTF-8 sans Byte Order Mark ressemble à du mojibake (é → é). Le correctif : soit enregistrer le fichier avec un BOM UTF-8, soit utiliser l'assistant Data → From Text d'Excel et sélectionner explicitement UTF-8, soit ouvrir le fichier dans Google Sheets, qui gère l'UTF-8 sans BOM correctement.
L'outil gère-t-il les virgules à l'intérieur des champs ?
Oui. Selon la RFC 4180, les champs contenant le délimiteur, des sauts de ligne ou des guillemets doubles sont automatiquement entourés de guillemets doubles. Les guillemets doubles internes sont échappés en les doublant. Donc San Francisco, CA devient "San Francisco, CA" et She said "hi" devient "She said ""hi""".
Mon JSON est-il envoyé à un serveur ?
Non. La conversion tourne entièrement dans votre navigateur. Le contenu de la zone de texte n'est pas transmis, journalisé ni stocké où que ce soit. Cela compte parce que les enregistrements exportés contiennent souvent des données personnelles, données clients, infos employés, historiques de transactions, qu'on ne souhaite pas voir transiter par l'infrastructure de quelqu'un d'autre.
Puis-je obtenir une sortie séparée par tabulations (TSV) ?
Oui, choisissez « Tab » dans le menu du délimiteur. Le TSV est le bon choix quand vos données contiennent des virgules (adresses, champs en texte libre, données financières avec séparateurs de milliers) et que vous ne voulez pas mettre une cellule sur deux entre guillemets. Beaucoup de formats de bioinformatique et de données scientifiques sont TSV par défaut.
Quelle est la limite de taille ?
Tout ce que votre navigateur peut contenir. Il n'y a pas de limite côté serveur parce qu'il n'y a pas de serveur. Des dizaines de mégaoctets de JSON se convertissent en une seconde ou deux sur un appareil moderne ; les payloads de centaines de mégaoctets commencent à ralentir. Pour de très gros datasets, lotissez-les ou passez à un convertisseur en flux en ligne de commande.
Outils associés
Convertisseur CSV → JSON
Convertissez des données CSV en tableaux ou objets JSON avec séparateurs personnalisables.
Formateur & validateur JSON
Formatez, minifiez et validez du JSON instantanément. Indentation et messages d'erreur configurables.
Générateur de schéma JSON
Générez un JSON Schema à partir de tout objet JSON. Prend en charge les objets imbriqués, les tableaux et tous les types.