Convertisseur JSON vers CSV
Convertissez du JSON en CSV dans le navigateur. Préréglages RFC 4180, Excel-EU, TSV, Pipe. Aplatir ou stringifier. 100 % privé, sans envoi.
Options · , · auto · LF · header · no BOM · flatten
Qu'est-ce que CSV et pourquoi convertir depuis JSON ?
CSV (Comma-Separated Values) est le format de données tabulaires le plus ancien et le plus largement pris en charge en informatique — chaque tableur, chaque base de données, chaque outil d'analyse et la plupart des langages de programmation ont un support CSV de première classe. JSON, en revanche, est le format universel pour les réponses d'API, la configuration et l'échange de données structurées. Convertir entre les deux est l'une des corvées les plus courantes en ingénierie de données : vous recevez du JSON depuis une API ou une base NoSQL, et vous avez besoin d'un CSV à charger dans Excel pour l'analyse, dans une table Postgres via COPY, ou dans un entrepôt BigQuery / Snowflake. Cet outil est conçu pour ce chemin de conversion et gère quatre scénarios que la plupart des convertisseurs en ligne bâclent.
Cet outil présente quatre différenciateurs importants par rapport aux convertisseurs en ligne typiques :
**1. Analyseur à machine à états RFC 4180.** CSV semble simple mais les règles de mise entre guillemets sont subtiles : un champ encadré de guillemets doubles peut contenir des virgules, des sauts de ligne intégrés et des guillemets doubles échappés (doublés, comme ""). Les analyseurs naïfs par découpage sur la virgule échouent sur les données du monde réel — adresses avec virgules, champs textuels multilignes et valeurs entre guillemets contenant des guillemets. Cet outil implémente un véritable analyseur à machine à états suivant RFC 4180 (la spécification IETF pour CSV), gérant correctement les champs entre guillemets, les délimiteurs intégrés, les fins de ligne intégrées et les guillemets échappés dans toutes les directions. La sortie est réversible via le module csv de Python, PostgreSQL COPY, AWS S3 SELECT et tout analyseur conforme.
**2. Aplatir à sens unique / Stringifier réversible.** Le JSON imbriqué est fondamentalement incompatible avec la forme tabulaire plate de CSV, et la plupart des convertisseurs corrompent silencieusement les données dès qu'ils rencontrent un objet ou tableau imbriqué. Cet outil vous donne un choix explicite : le mode Aplatir émet des clés pointées (customer.address.city) et des clés indexées (items.0.sku) pour la disposition de tableur la plus propre — lisible dans Excel mais lossy pour les allers-retours. Le mode Stringifier conserve les tableaux et objets en JSON dans une seule cellule — moins joli mais entièrement réversible : CSV → JSON → CSV produit des données identiques quand il est associé à Inférer les types lors de l'inversion. Choisissez selon votre objectif : analyse dans Excel (Aplatir) ou allers-retours de pipeline (Stringifier).
**3. Détection des grands entiers.** Le type Number de JavaScript utilise la double précision IEEE 754 et arrondit silencieusement les entiers au-dessus de 2^53 - 1 (9007199254740991). Cela mord dans le JSON du monde réel : les ID Snowflake de Twitter, les ID Discord, les champs Long de MongoDB et resourceVersion de Kubernetes sont tous des entiers 64 bits qui dépassent la plage sûre. La plupart des outils JSON basés sur navigateur produisent silencieusement des nombres erronés sans avertissement. Cet outil détecte les valeurs grand-entier pendant l'analyse, affiche une bannière d'avertissement listant les champs affectés, et préserve les chiffres d'origine sous forme de chaînes dans la sortie CSV pour qu'Excel et Google Sheets ne les tronquent pas en notation scientifique.
**4. Confidentialité 100 % basée sur le navigateur.** Vos données JSON — qui contiennent souvent des données personnelles d'utilisateurs, des exports de bases de données internes, des clés API embarquées dans les charges utiles et des secrets de production — ne quittent jamais votre navigateur. Aucune donnée n'est envoyée à un serveur, aucune journalisation, aucune analyse ne capture l'entrée. Vous pouvez le vérifier dans l'onglet Réseau de votre navigateur. C'est la seule façon sûre de manipuler des données sensibles dans un outil en ligne. Voyez la direction inverse en cliquant sur Inverser ou utilisez notre outil compagnon Convertisseur JSON vers YAML quand YAML est votre cible. Besoin de valider le JSON avant de convertir ? Essayez notre Formateur JSON.
Les points forts de CSV sont l'universalité et la simplicité : chaque outil le lit, les analyseurs sont minuscules et le format est lisible dans n'importe quel éditeur de texte. Ses faiblesses sont l'absence d'information de type (tout est une chaîne jusqu'à ce que vous indiquiez le contraire à l'analyseur), l'absence de support natif des structures imbriquées et les particularités spécifiques aux locales (point-virgule Excel-EU, CRLF Windows vs LF Unix). Les forces de JSON sont exactement opposées : types précis, imbrication native et spécification stricte qui s'analyse de manière identique partout. Le bon outil dépend du consommateur : un humain lisant un tableur → CSV, une machine consommant une API → JSON. Ce convertisseur fait le pont dans les deux directions.
// Input JSON
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]
// Output CSV (RFC 4180 preset: comma + CRLF + no BOM)
id,name,role
1,Alice,admin
2,Bob,editor
// Same input with Stringify mode + nested data
[
{ "id": 1, "tags": ["a", "b"] }
]
// Becomes
id,tags
1,"[""a"",""b""]" Fonctionnalités clés
Conforme RFC 4180
Analyseur à machine à états strict suivant la spécification CSV de l'IETF : gestion correcte des champs entre guillemets, des délimiteurs intégrés, des CR/LF intégrés et des guillemets doubles échappés (doublés). La sortie fait des allers-retours propres via le csv de Python, PostgreSQL COPY et AWS S3 SELECT.
Préréglages Excel, TSV et Pipe
Préréglages en un clic pour les quatre cibles les plus courantes : RFC 4180 (virgule + CRLF), Excel (point-virgule + CRLF + BOM UTF-8 pour les locales EU), TSV (Tab + LF) et Pipe (| + LF). Basculez entre formats sans ajuster manuellement cinq options séparées.
Aplatir ou Stringifier les données imbriquées
Gestion explicite de l'imbrication : Aplatir émet des clés pointées (customer.address.city) pour une analyse propre en tableur, Stringifier conserve les tableaux et objets en JSON dans une seule cellule pour des allers-retours sans perte. Choisissez selon que vous avez besoin d'une analyse dans Excel ou d'un aller-retour de pipeline.
Détection des grands entiers
Les entiers au-dessus de 2^53 sont détectés pendant l'analyse et préservés sous forme de chaînes dans le CSV — les ID Twitter, snowflakes Discord, champs Long de MongoDB et resourceVersion K8s restent exacts au lieu d'être arrondis silencieusement par le type Number IEEE 754 de JavaScript.
Détection automatique NDJSON
Le JSON ligne par ligne (.ndjson, .jsonl) est détecté automatiquement — collez les logs en streaming, exports d'événements d'API ou sorties de data lake directement sans envelopper manuellement dans un tableau. Chaque ligne devient une ligne dans le CSV.
Bidirectionnel avec Inverser
Un bouton Inverser le sens unique bascule la conversion sur place : l'entrée devient CSV, la sortie devient JSON, le texte actuel est préservé. Faites un aller-retour de vos données dans les deux directions pour vérifier la conversion sans perte avant de l'envoyer dans un pipeline.
Exemples
Réponse d'API REST
[{"id":1,"name":"Alice Chen","email":"alice@example.com","role":"admin"},{"id":2,"name":"Bob Garcia","email":"bob@example.com","role":"editor"},{"id":3,"name":"Carol Singh","email":"carol@example.com","role":"viewer"},{"id":4,"name":"Dan Müller","email":"dan@example.com","role":"viewer"}] Sortie d'API courante. Avec En-tête activé, vous obtenez un CSV tabulaire propre prêt pour Excel.
API GitHub Issues
[{"id":1001,"title":"Bug: login redirects to 404","state":"open","labels":["bug","priority:high"],"user":{"login":"alice"}},{"id":1002,"title":"Feature: dark mode toggle","state":"open","labels":["enhancement"],"user":{"login":"bob"}},{"id":1003,"title":"Docs: update README","state":"closed","labels":["docs","good-first-issue"],"user":{"login":"carol"}}] Récupéré depuis /repos/{owner}/{repo}/issues. Aplatissement activé, en-tête activé — expose user.login comme colonne aplatie.
MongoDB mongoexport
[{"_id":{"$oid":"6634a1b2c3d4e5f600000001"},"email":"alice@example.com","metadata":{"signupDate":"2026-01-15T10:30:00Z","preferences":{"newsletter":true,"theme":"dark"}}},{"_id":{"$oid":"6634a1b2c3d4e5f600000002"},"email":"bob@example.com","metadata":{"signupDate":"2026-02-20T14:15:00Z","preferences":{"newsletter":false,"theme":"light"}}}] Forme d'export Mongo. Choisissez le mode Stringifier si vous prévoyez un aller-retour CSV→JSON.
Journal d'événements NDJSON
{"event":"signup","user":"alice","ts":1715000000}
{"event":"login","user":"alice","ts":1715000060}
{"event":"checkout","user":"alice","ts":1715000300} Le JSON ligne par ligne (.ndjson/.jsonl) est détecté automatiquement — collez le contenu du fichier directement.
Commandes e-commerce imbriquées
[{"id":"ord-001","customer":{"name":"Alice Chen","email":"alice@example.com","address":{"city":"Seattle","country":"US"}},"items":[{"sku":"SKU-100","qty":2},{"sku":"SKU-205","qty":1}]},{"id":"ord-002","customer":{"name":"Bob Garcia","email":"bob@example.com","address":{"city":"Madrid","country":"ES"}},"items":[{"sku":"SKU-100","qty":1}]}] Le mode Aplatir émet des clés pointées (customer.address.city, items.0.sku). Passez à Stringifier pour conserver les tableaux/objets en JSON dans une seule cellule.
Résultats de tests Postman
[{"name":"GET /users returns 200","status":"pass","duration":142},{"name":"POST /users creates record","status":"pass","duration":287},{"name":"GET /users/999 returns 404","status":"fail","duration":98,"error":"Expected 404, got 500"},{"name":"DELETE /users/1 returns 204","status":"pass","duration":156}] Export de tests Postman/Newman. Les lignes de formes mixtes (certaines avec error) sont remplies de cellules vides — vous verrez un avertissement Notes de schéma.
Comment utiliser
- 1
Collez votre JSON
Entrez ou collez votre JSON dans le champ de saisie ci-dessus. L'outil accepte les tableaux d'objets, les objets uniques et NDJSON (JSON ligne par ligne) — détecté automatiquement. Vous pouvez aussi cliquer sur « Charger un exemple » pour essayer un échantillon comme une réponse d'API REST, un export MongoDB ou un journal d'événements NDJSON.
- 2
Choisissez un préréglage (ou ajustez les Options)
Cliquez sur RFC 4180 (par défaut), Excel (point-virgule EU + BOM), TSV (Tab) ou Pipe pour viser un format cible en un clic. Ouvrez le panneau Options pour un contrôle fin : Délimiteur, En-tête, Guillemets (Auto/Toujours), Fin de ligne (LF/CRLF), BOM et Imbriqué (Aplatir/Stringifier).
- 3
Copiez ou téléchargez le CSV
Cliquez sur Copier pour récupérer le CSV dans votre presse-papiers, ou sur Télécharger pour le sauvegarder en fichier .csv (.tsv avec le préréglage TSV) prêt pour Excel, Google Sheets, PostgreSQL COPY ou tout pipeline de données. Pour les allers-retours, cliquez sur Inverser le sens pour reconvertir le CSV en JSON sur place.
Pièges courants de conversion
La valeur de premier niveau est une primitive
CSV est fondamentalement tabulaire — des lignes de champs. Un seul nombre, chaîne ou booléen n'a pas de structure ligne/colonne sur laquelle se projeter. La valeur JSON de premier niveau doit être un objet (tableau d'une ligne) ou un tableau (tableau multi-lignes). Enveloppez d'abord une primitive dans un objet ou un tableau.
42
[{"value": 42}] Tableau de formes mixtes (lignes avec clés différentes)
Quand les lignes d'un tableau JSON ont des clés différentes (certaines ont un champ error, d'autres non), l'outil unione toutes les clés sur toutes les lignes et remplit les cellules manquantes avec des valeurs vides. Un avertissement Notes de schéma apparaît pour que vous sachiez que les colonnes ont été fusionnées. C'est généralement bien, mais vérifiez la sortie si les outils en aval attendent un schéma strict.
[
{"name": "GET /users", "status": "pass"},
{"name": "GET /users/999", "status": "fail", "error": "500"}
] // Output CSV (note empty cell in row 1) name,status,error GET /users,pass, GET /users/999,fail,500
Grand entier tronqué par Excel
Les ID Snowflake de Twitter, les ID Discord et autres entiers 64 bits dépassent la plage sûre de JavaScript (2^53 - 1) et perdent en précision quand JSON.parse() les lit. Même si le CSV préserve les chiffres, Excel les affichera en notation scientifique par défaut. La solution est double : stockez les ID sous forme de chaînes dans votre JSON avant de convertir, et activez le BOM (ou utilisez le préréglage Excel) pour qu'Excel préserve la cellule comme texte.
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) {"id": "9007199254740993"}
// CSV preserves the string; Excel displays exactly Virgule intégrée non encadrée de guillemets
Si vous construisez du CSV à la main avec un join(',') naïf, tout champ contenant une virgule (Smith, Jr. ou 1,234.56) cassera les limites de colonnes — l'analyseur voit des colonnes supplémentaires là où il devrait y en avoir une. Le mode Guillemets Auto de cet outil suit RFC 4180 et encadre automatiquement de guillemets doubles tout champ contenant le délimiteur, le guillemet double, CR ou LF.
name,role Smith, Jr.,admin // Parser reads 3 columns: "Smith", " Jr.", "admin"
name,role "Smith, Jr.",admin // Parser reads 2 columns: "Smith, Jr.", "admin"
Fichier Excel-EU illisible en virgule-CSV
Les locales européennes d'Excel (Allemagne, France, Espagne, Italie, etc.) réservent la virgule pour le séparateur décimal et utilisent les points-virgules comme délimiteur de champ. Un CSV virgule standard s'ouvre avec chaque ligne tassée dans la colonne A. La solution est le préréglage Excel : il bascule sur ; + CRLF + BOM UTF-8 pour qu'Excel analyse correctement le fichier dans n'importe quelle locale.
id,name,price 1,Alice,1,234.56 // Excel-EU mis-parses 1,234.56 as two columns
// Excel preset output: ; + CRLF + BOM id;name;price 1;Alice;1234,56 // Excel-EU reads cleanly with comma decimal
NDJSON non détecté (forme d'entrée)
La détection automatique NDJSON exige une valeur JSON valide par ligne, sans crochets de tableau en début ou en fin. Si vous collez un tableau JSON de tableaux, ou que votre fichier a un [ en début et un ] en fin, l'outil le traite comme une seule valeur JSON, pas comme NDJSON. Retirez les crochets englobants et assurez-vous que chaque ligne est un objet JSON autonome.
[
{"event": "signup"},
{"event": "login"}
]
// Detected as a regular JSON array (works, but not NDJSON path) {"event": "signup"}
{"event": "login"}
// Each line is one JSON value — auto-detected as NDJSON Cas d'utilisation courants
- Réponse d'API vers tableur
- Collez une réponse d'API REST (tableau d'objets utilisateur/commande/événement) et obtenez un CSV tabulaire propre prêt pour Excel, Google Sheets ou Numbers. Le cas d'usage le plus courant — analystes et chefs de produit ont besoin de données en forme de tableur, les ingénieurs livrent du JSON depuis le backend.
- Export MongoDB vers entrepôt de données
- Convertissez la sortie JSON de mongoexport (avec wrappers $oid et documents metadata imbriqués) en CSV pour le chargement dans BigQuery, Snowflake ou Redshift. Le mode Stringifier préserve la forme imbriquée sans perte quand les outils en aval supportent JSON-en-cellule.
- Triage des issues GitHub
- Tirez les issues depuis /repos/{owner}/{repo}/issues, collez le JSON et obtenez un CSV plat avec id, title, state, labels et user.login comme colonnes. Déposez dans Sheets pour filtrer, trier et assigner pendant la planification de sprint.
- Revue de journal d'événements NDJSON
- Les logs en streaming depuis Cloud Logging, Datadog, Vector ou votre propre pipeline arrivent souvent en NDJSON (.ndjson, .jsonl). Collez le contenu du fichier directement — détecté automatiquement — et obtenez un CSV pour une analyse ad hoc sans monter un vrai pipeline ETL.
- Extraction de commandes e-commerce
- Convertissez du JSON de commande imbriqué (customer.address.city, tableau items) en CSV plat pour la finance, l'exécution ou la revue antifraude. Le mode Aplatir produit une colonne par champ feuille, prêt à charger dans Excel pour des rapports ad hoc.
- Rapport de tests Postman/Newman
- Les exports de tests Postman incluent des lignes de formes mixtes (certaines avec champs error optionnels). Collez le JSON, obtenez un CSV avec toutes les clés unionées et les cellules manquantes remplies — parfait pour partager les rapports de tests échoués avec les non-ingénieurs dans Sheets.
Détails techniques
- Analyseur à machine à états RFC 4180
- Les deux directions utilisent un véritable analyseur à automate fini suivant RFC 4180. Les états incluent UnquotedField, QuotedField, AfterQuote, RowEnd et EndOfInput. L'analyseur gère correctement les champs entre guillemets contenant le délimiteur, les CR/LF intégrés dans les champs entre guillemets, les guillemets doubles échappés (doublés, comme "") et les sauts de ligne en fin. Cela produit une sortie qui fait des allers-retours sans perte via le module csv de Python, PostgreSQL COPY, AWS S3 SELECT et tout analyseur conforme.
- Algorithme de détection des grands entiers
- Avant de passer le JSON par JSON.parse() (qui arrondirait silencieusement les grands entiers via IEEE 754), l'outil exécute un scan regex sur le texte JSON brut à la recherche de littéraux entiers en dehors de la plage sûre (-2^53+1 à 2^53-1). Quand détectés, les chemins de champ affectés sont enregistrés et une bannière d'avertissement Grand entier apparaît sous la sortie. Le rédacteur CSV préserve alors ces valeurs sous forme de chaînes, garantissant une précision exacte via Excel, Google Sheets et tout consommateur en aval conscient du texte.
- BOM et encodage UTF-8 pour Excel
- Toute l'entrée et la sortie sont en UTF-8. Le BOM UTF-8 optionnel (0xEF 0xBB 0xBF) est ajouté en préfixe à la sortie quand le bouton BOM est activé ou quand le préréglage Excel est sélectionné. Excel sur Windows utilise le BOM pour détecter l'encodage UTF-8 — sans cela, Excel retombe sur la locale système (Windows-1252 aux US, Windows-1251 en Russie, etc.) et corrompt les caractères non-ASCII. Les analyseurs modernes (csv Python, Pandas, jq, PostgreSQL) n'ont généralement pas besoin du BOM et peuvent l'inclure comme caractère parasite au début de la première cellule, donc laissez le BOM désactivé pour les pipelines non-Excel.
Bonnes pratiques
- Choisissez un préréglage avant d'ajuster les options
- Les préréglages RFC 4180, Excel, TSV et Pipe ajustent cinq options à la fois (délimiteur, fin de ligne, mode guillemets, BOM, en-tête). Choisissez d'abord le préréglage le plus proche, puis ajustez les options individuelles seulement si nécessaire — cela évite l'erreur courante de basculer une option et d'en oublier une autre (par exemple, passer au point-virgule mais laisser LF, qu'Excel-EU sur Windows analyse encore mal).
- Aplatir pour l'analyse, Stringifier pour les allers-retours
- Utilisez Aplatir quand la destination est Excel, Sheets ou une analyse ponctuelle — les clés pointées produisent la disposition de tableur la plus propre. Utilisez Stringifier quand vous avez besoin d'un aller-retour CSV → JSON → CSV sans perte de données — les tableaux et objets survivent en JSON dans une seule cellule. Basculer en cours d'export et relancer est peu coûteux ; choisissez selon le consommateur.
- Utilisez le BOM uniquement pour Excel
- Le BOM UTF-8 est requis pour qu'Excel sur Windows détecte correctement l'encodage. Tous les autres analyseurs (csv Python, Pandas, jq, PostgreSQL COPY, BigQuery) soit ignorent le BOM, soit l'incluent comme caractère parasite au début de la première cellule, cassant les noms de colonnes. Laissez le BOM désactivé pour les pipelines et activez-le (ou utilisez le préréglage Excel) seulement quand la destination est Excel.
- Conservez les grands ID comme chaînes dans le JSON
- Les ID Snowflake de Twitter, ID Discord, champs Long de MongoDB et resourceVersion K8s sont des entiers 64 bits qui dépassent la plage sûre de JavaScript (2^53 - 1). Stockez-les comme chaînes JSON ("id": "9007199254740993") avant de convertir — le CSV préservera les chiffres exactement, tandis qu'un littéral numérique serait silencieusement arrondi par JSON.parse().
- Validez la forme des lignes avant le chargement
- Les lignes de formes mixtes (certains objets avec des clés que d'autres n'ont pas) sont fusionnées avec des cellules vides dans la sortie, et l'outil affiche un avertissement Notes de schéma. Pour les consommateurs à schéma strict (BigQuery, Redshift COPY), validez que toutes les lignes partagent les mêmes clés avant l'export — ou gérez explicitement les valeurs manquantes dans votre pipeline. Utilisez notre Formateur JSON pour inspecter d'abord la forme de l'entrée.
Questions fréquentes
À quoi sert cet outil ?
Mes données sont-elles envoyées quelque part ?
Quelle est la différence entre les modes Aplatir et Stringifier ?
Comment gère-t-il les grands entiers comme les ID Twitter ou les clés Snowflake ?
Pourquoi Excel affiche-t-il mon CSV sur une seule colonne ?
Cela prend-il en charge NDJSON ou JSON Lines ?
Qu'est-ce que RFC 4180 ?
Pourquoi certaines cellules sont entre guillemets et d'autres non ?
Puis-je faire un aller-retour CSV → JSON → CSV sans perte de données ?
Comment obtenir un fichier TSV ?
Que se passe-t-il avec une entrée très volumineuse ?
Quels encodages sont pris en charge ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Convertisseur CSV vers JSON
Encodage et formatage
Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.
JSON Diff (Comparateur)
Encodage et formatage
Comparez deux fichiers JSON instantanément dans votre navigateur. Vue côte à côte, sortie JSON Patch RFC 6902, ignorer les champs bruyants comme les horodatages et les ID. 100% privé, aucun envoi.
Formateur et Validateur JSON
Encodage et formatage
Formatez, validez et embellissez vos JSON dans le navigateur. Validation syntaxique, détection d'erreurs, minification et copie en un clic. 100 % privé.
Validateur JSON Schema
Encodage et formatage
Validez du JSON contre n'importe quel JSON Schema instantanément dans votre navigateur. Compatible Draft 2020-12, 2019-09 et Draft-07 avec messages d'erreur au chemin précis. 100 % privé — sans envoi, sans compte, gratuit.
Convertisseur JSON vers YAML
Encodage et formatage
Collez du JSON, obtenez du YAML instantanément. En direct dans le navigateur. K8s/Compose, 2/4 espaces, guillemets sécurisés Norway. 100 % privé, sans envoi.