Convertisseur CSV → JSON, gratuit
Convertissez des valeurs séparées par virgule en tableaux ou objets JSON.
À propos de CSV → JSON
Le CSV (Comma-Separated Values) est un format de données tabulaire simple, tandis que le JSON (JavaScript Object Notation) est le format standard des API et applications web. Cet outil convertit entre les deux, en gérant les champs entre guillemets, les caractères échappés et divers séparateurs. Lorsque « La première ligne est un en-tête » est coché, les noms de colonnes deviennent les clés des objets JSON.
Comment ça marche
- Collez votre CSV : déposez votre texte CSV dans le champ de saisie. Choisissez le séparateur qui correspond à vos données (virgule, tabulation, point-virgule ou barre verticale) dans la liste déroulante.
- Configurez les options : cochez « Première ligne = en-tête » si la première ligne contient des noms de colonnes (ils deviendront les clés JSON). Cochez « Détection automatique des types » pour convertir nombres et booléens automatiquement.
- Convertissez : chaque ligne CSV devient un objet JSON avec les clés issues de l'en-tête, ou un tableau simple s'il n'y a pas d'en-tête.
- Copiez ou téléchargez : copiez le tableau JSON ou téléchargez un fichier .json à utiliser dans du code ou des API.
Pourquoi convertir du CSV en JSON ?
Le CSV est le format d'export universel des tableurs, bases de données et outils d'analyse, mais la plupart des API modernes, applications JavaScript et bases NoSQL fonctionnent en JSON. Convertir des exports CSV de Google Sheets, Excel, Airtable ou d'outils de base de données en JSON est une tâche quotidienne en data engineering, développement web et intégration d'API. Ce convertisseur gère les cas courants : champs entre guillemets contenant des virgules, guillemets échappés à l'intérieur, fins de ligne Windows (CRLF), et colonnes mixtes nombre/chaîne avec détection intelligente des types.
Fonctionnalités
- Quatre séparateurs au choix: virgule, tabulation, point-virgule ou barre verticale, via une liste déroulante
- Prise en charge de l'en-tête: première ligne utilisée comme noms de clés JSON
- Coercion de types: nombres et booléens détectés automatiquement
- Prise en charge de gros fichiers: gère des fichiers de milliers de lignes
- Option de pretty-print: sortie JSON indentée ou compacte
Qu'est-ce que la conversion CSV vers JSON ?
La conversion CSV vers JSON prend un fichier texte tabulaire plat (lignes de valeurs séparées par des virgules) et émet un tableau JSON où chaque ligne devient un objet indexé par les en-têtes de colonne. Les mêmes données («name,age» retour à la ligne «Alice,30» retour à la ligne «Bob,25») passent d'un CSV de deux lignes à un tableau JSON de deux objets, chacun avec les champs name et age. La conversion est réversible (json-to-csv couvre la direction inverse).
CSV reste le format d'exportation universel pour les tableurs (Excel, Google Sheets, Numbers, LibreOffice Calc) et les bases de données SQL (mysqldump, pg_dump). JSON est le format dominant pour les API web, les bases de données NoSQL et les applications JavaScript. La conversion entre eux est la tâche d'interopérabilité la plus courante dans l'ingénierie de données, les pipelines ETL et le travail front-end.
Ce convertisseur gère quatre délimiteurs (virgule, point-virgule, tabulation, barre verticale), des lignes d'en-tête optionnelles et la détection automatique des types numériques et booléens. Il implémente les règles de citation RFC 4180 afin que les champs cités avec des virgules, des sauts de ligne ou des guillemets doublés intégrés s'analysent correctement. La sortie est du JSON joliment formaté avec un retrait de deux espaces, prêt pour la copie ou le téléchargement.
Ce qu'il y a dans le convertisseur
La barre de contrôle en haut expose les trois boutons qui modifient le comportement d'analyse : un menu déroulant de délimiteur (virgule, point-virgule, tabulation ou barre verticale), une case Première ligne est l'en-tête et une case Détection automatique des types. Choisissez d'abord le délimiteur qui correspond à vos données source, puis décidez si la ligne d'en-tête doit être promue en clés d'objet ou conservée comme ligne de données.
Les deux zones de texte affichent l'entrée CSV à gauche et la sortie JSON à droite. La sortie est en lecture seule et se met à jour après avoir cliqué sur Convertir en JSON. Un compteur de lignes sous les boutons indique combien de lignes l'analyseur a reconnues ; s'il diffère de ce que vous attendiez, vérifiez le délimiteur ou cherchez des guillemets déséquilibrés dans votre entrée.
Cinq boutons d'action se trouvent sous les panneaux : Convertir en JSON exécute la conversion, Copier écrit la sortie dans votre presse-papiers, Exemple charge un exemple CSV pour que vous puissiez voir le format attendu, Effacer vide les deux zones de texte et Télécharger enregistre le JSON comme un fichier .json. Il y a aussi une table d'aperçu cachée qui apparaît lorsque vous cliquez sur Exemple, montrant les lignes analysées dans une disposition tabulaire.
Histoire et contexte
Les cartes perforées Hollerith inaugurent les données tabulaires (1890)
Le recensement américain de 1890 fonctionnait sur les cartes perforées d'Herman Hollerith, chaque carte contenant des colonnes de données à position fixe. L'idée des lignes-et-colonnes comme format de données précède les ordinateurs numériques de 50 ans. Tout format tabulaire moderne (CSV, TSV, Excel, Parquet) fait remonter sa forme rectangulaire aux cartes perforées. La Computing-Tabulating-Recording Company qui a émergé des brevets d'Hollerith est devenue IBM en 1924.
CSV émerge de l'I/O dirigée par liste de FORTRAN (1972)
Le compilateur FORTRAN d'IBM en 1972 a introduit l'I/O dirigée par liste où les valeurs séparées par des virgules pouvaient être lues dans plusieurs variables en un seul appel. La convention s'est répandue à BASIC, aux formats de rapport mainframe et à l'informatique personnelle naissante. Dans les années 1980, la plupart des programmes de tableur (VisiCalc, Lotus 1-2-3, Excel) pouvaient exporter du texte séparé par des virgules. Il n'y avait pas de spec unique, donc les dialectes ont proliféré.
RFC 4180 standardise CSV (2005)
Le RFC 4180 de Yakov Shafranovich, publié en octobre 2005, a donné à CSV sa première spécification largement citée. Il a défini l'utilisation des fins de ligne CRLF, l'échappement des guillemets doubles (un guillemet à l'intérieur d'un champ cité est écrit comme deux guillemets), et un seul caractère délimiteur. Le RFC était Informatif, pas Proposed Standard, donc de nombreux outils s'en écartent encore, mais RFC 4180 reste la référence canonique pour ce à quoi ressemble un CSV bien formé.
JSON spécifié (2001) et standardisé (2013)
Douglas Crockford a documenté JSON en avril 2001. C'était un format évident pour sérialiser des objets JavaScript mais s'est rapidement répandu à tous les langages. ECMA-404 l'a standardisé en 2013, RFC 8259 a remplacé RFC 4627 en 2017. Le format est intentionnellement minimal (pas de commentaires, pas de schéma), ce qui explique exactement pourquoi il est devenu la lingua franca des API.
Des variantes CSV spécifiques à la locale émergent (à partir des années 1990)
Dans les pays où la virgule est utilisée comme séparateur décimal (France, Allemagne, la plupart de l'Europe continentale, Brésil), Excel exporte le CSV avec un point-virgule comme délimiteur pour éviter le conflit avec les virgules décimales. Dans les pays anglophones, la virgule reste. La même installation Excel produit un CSV différent selon la locale du système d'exploitation, c'est pourquoi ce convertisseur expose un menu déroulant de délimiteur plutôt que de deviner.
PapaParse et la montée du CSV dans le navigateur (2014)
PapaParse de Matt Holt (2014) est devenu l'analyseur CSV JavaScript de facto. Sa conception (détection automatique du délimiteur, gestion de gros fichiers avec des web workers, conformité stricte au RFC 4180) est devenue le modèle de chaque convertisseur dans le navigateur qui a suivi. Cet outil implémente un analyseur plus léger réglé pour les quatre délimiteurs communs et les cas RFC 4180 les plus cités, sans les workers (qui sont inutiles pour les entrées du kilo-octet au méga-octet typiques de cette UI).
Flux de travail pratiques
Exportation de tableur vers le corps de requête API
Vous avez exporté une liste de contacts de 200 lignes depuis Google Sheets au format CSV. Collez ici, laissez Première ligne est l'en-tête coché, cliquez sur Convertir. Le tableau JSON de sortie est prêt à être POSTé vers un point de terminaison d'API CRM qui attend une création en masse.
Fichier de seed de base de données depuis CSV
Vous avez un CSV de produits d'un système hérité. Convertissez en JSON, enregistrez sous seed.json, et chargez-le dans MongoDB ou DynamoDB avec mongoimport ou l'AWS CLI. Le tableau JSON correspond directement à une collection sans schéma explicite.
Données pour bibliothèques de graphiques (D3, Chart.js, Recharts)
D3.js accepte directement CSV via d3.csv, mais Chart.js et Recharts veulent JSON. Convertissez votre CSV de ventes mensuelles ici, déposez le tableau résultant dans votre composant React, et passez-le à une prop de graphique. L'option Détection automatique des types garantit que les colonnes numériques deviennent de vrais nombres, pas des chaînes.
Données fictives pour un frontend
Lorsque vous construisez l'UI avant que le backend n'existe, les données fictives vivent bien dans un fichier JSON importé avec require ou fetch. Esquissez vos enregistrements dans un tableur, exportez CSV, convertissez ici et collez dans mockData.json. Itérez en éditant le tableur (ce qui est plus facile que d'éditer JSON à la main) et en reconvertissant.
Analyse de fichier journal avec jq
Certains journaux de serveur sont au format CSV. Convertissez en JSON, puis pipez via jq pour filtrer, trier et agréger. La conversion comble l'écart entre les journaux en fichier plat et les outils de traitement de flux qui attendent des enregistrements structurés.
Importation en masse CMS
Les plateformes CMS sans tête (Contentful, Sanity, Strapi, Directus) acceptent généralement les importations JSON. Les éditeurs écrivent le contenu dans un tableur familier, vous convertissez ici et exécutez un script d'importation unique. La ligne d'en-tête devient les noms de champs qui correspondent à votre schéma CMS.
Pièges courants
Champs cités avec virgules internes
Une ligne comme 1,"Smith, John",30 a trois champs logiques, pas quatre, parce que la virgule à l'intérieur du champ cité est des données, pas un délimiteur. Cet analyseur respecte l'échappement des guillemets doubles RFC 4180, mais un CSV mal formé (guillemet de fermeture manquant, guillemets non appariés) produira un JSON absurde. Utilisez un linter CSV ou importez le fichier dans un tableur d'abord pour faire surface les erreurs structurelles.
Sauts de ligne intégrés à l'intérieur de champs cités
RFC 4180 autorise les sauts de ligne littéraux à l'intérieur de champs entre guillemets doubles, mais de nombreux analyseurs simples basés sur les lignes traitent chaque saut de ligne comme un séparateur d'enregistrement. Si votre CSV a des commentaires multi-lignes ou des adresses à l'intérieur de guillemets, le nombre de lignes peut ne pas correspondre au nombre de lignes visuelles. Ce convertisseur les gère correctement, mais les outils en aval peuvent ne pas le faire.
Marque d'ordre des octets (BOM) au début du fichier
Les outils Windows (Excel surtout) préfixent parfois les fichiers CSV UTF-8 avec un BOM de trois octets (EF BB BF). Lorsque vous copiez d'un fichier préfixé par BOM, le premier en-tête obtient un préfixe invisible qui dépareille «name» avec «name» dans votre code. Ouvrez le fichier dans un éditeur hexadécimal ou supprimez les BOM avec une seule ligne (sed sous unix, Get-Content sous PowerShell) avant de coller ici.
Virgule vs point-virgule selon la locale
Une exportation Excel locale française utilise des points-virgules car les virgules sont des séparateurs décimaux. L'importer avec le délimiteur virgule par défaut sépare 1,234 en deux champs. Choisissez toujours le délimiteur qui correspond à la source. Si vous n'êtes pas sûr, regardez la première ligne dans un éditeur de texte simple ; le séparateur évident est ce que vous voulez.
Zéros de tête perdus à la coercition de type
Les codes postaux, les numéros de téléphone et les SKU de produits commencent souvent par un zéro (par exemple «01234»). La détection automatique des types les contraint en entiers, perdant le zéro de tête (1234). Pour les colonnes où les zéros de tête importent, décochez Détection automatique des types pour que les valeurs restent des chaînes. Ou convertissez puis enveloppez manuellement les champs affectés avec des guillemets.
Injection de formule Excel (bombe CSV)
Si une cellule CSV commence par =, +, -, ou @, Excel peut l'évaluer comme une formule lorsque le fichier est ouvert. =cmd|'/c calc'!A1 lance la calculatrice sur les machines Windows. C'est un vecteur d'attaque connu lorsque les applications web exportent des données contrôlées par l'utilisateur vers CSV. La conversion en JSON neutralise la menace (JSON n'a pas d'évaluation de formule), mais le CSV original reste dangereux.
Confidentialité et gestion des données
Toute l'analyse se produit dans votre navigateur en utilisant une petite fonction JavaScript. Nous n'envoyons pas votre CSV ou JSON à un serveur, ne journalisons pas les entrées et ne stockons pas les sorties. Les boutons Copier et Télécharger interagissent avec votre système d'exploitation via des API standard de geste utilisateur et sont invisibles aux tiers.
Une fois la page chargée, l'outil fonctionne hors ligne. Vous pouvez vous déconnecter du réseau et convertir les listes de clients, les SKU internes ou toutes données qui ne doivent pas quitter votre appareil. L'outil est sûr pour les flux de travail HIPAA-adjacents car le chemin des données ne franchit jamais une frontière externe.
Quand ne pas utiliser ce convertisseur
Très gros fichiers (au-dessus de 10 Mo)
Le convertisseur garde toute l'entrée en mémoire et la traite de manière synchrone, ce qui fige l'onglet du navigateur sur des CSV de plusieurs millions de lignes. Pour les fichiers au-dessus de 10 mégaoctets, utilisez un analyseur en streaming (module csv de Python, csv-parse de Node, crate csv de Rust) qui lit une ligne à la fois.
Forme d'objet imbriqué dans les cellules
CSV est plat par conception. Si vos données ont des objets ou tableaux imbriqués à l'intérieur des cellules (par exemple, une colonne de balises avec des valeurs séparées par des virgules), la conversion les traite comme des chaînes, pas comme des tableaux. Vous aurez besoin d'une étape de post-traitement en JavaScript ou Python pour diviser la chaîne et reconstruire la forme imbriquée.
Données binaires ou non UTF-8
Les fichiers CSV des systèmes Windows plus anciens peuvent être encodés en Windows-1252 (CP-1252) au lieu d'UTF-8. Les caractères spéciaux (é, ñ, ü) apparaissent comme du mojibake lorsqu'ils sont collés dans une zone de texte UTF-8. Réenregistrez le fichier en UTF-8 dans votre éditeur de texte (ou exécutez iconv depuis la ligne de commande) avant de coller.
Données en streaming en temps réel
Si votre CSV est constamment ajouté (un flux journal de style tail), cet outil de traitement par lots ne peut pas suivre. Utilisez un analyseur en streaming canalisé vers un websocket ou une base de données avec un mode d'ingestion CSV (Postgres COPY FROM, MySQL LOAD DATA INFILE).
Plus de questions
L'analyseur est-il strictement conforme au RFC 4180 ?
Principalement. L'analyseur gère l'échappement des guillemets doubles (deux guillemets à l'intérieur d'un champ cité signifie un guillemet littéral), les champs cités avec des virgules et des sauts de ligne intégrés, et les fins de ligne CRLF ou LF. Il s'écarte du RFC 4180 strict en acceptant des champs non cités avec des espaces de début ou de fin (ce que la spec interdit). Cette tolérance pragmatique correspond à ce que la plupart des exportateurs CSV du monde réel émettent.
Comment le CSV bizarre d'Excel affecte-t-il la sortie ?
Excel ajoute des BOM aux fichiers UTF-8, utilise parfois l'encodage Windows-1252 et préfère les points-virgules dans les locales non anglaises. Supprimez le BOM et réenregistrez en UTF-8 avant de coller. Choisissez le bon délimiteur dans la liste déroulante. Faites attention aux zéros de tête sur les colonnes ressemblant à des nombres ; Excel les supprime souvent de lui-même quand vous ouvrez le CSV.
Qu'en est-il de UTF-8 avec BOM vs UTF-8 pur ?
UTF-8 avec BOM a un préfixe de trois octets (EF BB BF) qui signale l'encodage. La plupart des outils web (navigateurs, analyseurs JSON) préfèrent UTF-8 simple sans BOM. Si votre CSV provient de l'exportation UTF-8 d'Excel, le BOM peut être présent, et le premier champ d'en-tête le contiendra silencieusement. Supprimez le BOM (sed -i '1s/^\xEF\xBB\xBF//' fichier.csv) avant de coller.
Puis-je intégrer du JSON à l'intérieur d'une cellule CSV ?
Vous pouvez, en encadrant le JSON dans des guillemets doubles et en échappant les guillemets internes. Le convertisseur traite la cellule comme une chaîne, donc le JSON à l'intérieur reste comme une chaîne dans la sortie. Une étape de post-traitement (JSON.parse sur ce champ dans votre code) reconstruit l'objet intégré. C'est un motif courant lors de l'expédition de JSON à l'intérieur d'exportations de tableurs.
Pourquoi mon JSON de sortie manque-t-il de certaines colonnes ?
Probablement parce qu'une ligne a moins de colonnes que l'en-tête (une cellule vide finale a été abandonnée à l'exportation). L'analyseur émet undefined pour les valeurs manquantes, que JSON.stringify abandonne, donc l'objet résultant a moins de clés que prévu. Ouvrez le fichier source dans un tableur pour voir quelles lignes sont courtes, et corrigez les données ou post-traitez pour remplir les défauts.
Cela prend-il en charge TSV (valeurs séparées par des tabulations) ?
Oui, choisissez Tabulation dans le menu déroulant de délimiteur. Les fichiers TSV sont courants lorsque les fichiers CSV auraient trop de cellules entre guillemets (car les tabulations sont rarement des données valides dans les cellules de tableurs). L'analyseur gère TSV de manière identique sauf pour le délimiteur ; les règles de citation et d'échappement sont les mêmes.
Outils associés
Convertisseur JSON → CSV
Convertissez des tableaux JSON au format CSV. Séparateur personnalisable, téléchargement en .csv.
Formateur & validateur JSON
Formatez, minifiez et validez du JSON instantanément. Indentation et messages d'erreur configurables.
Générateur de tables HTML
Construisez des tables HTML visuellement avec un tableur. Personnalisez les styles et exportez un code HTML propre.