TextSorter
Entrée CSV
Sortie JSON

Comment Convertir un CSV en JSON en Ligne

Le CSV est le format que les tableurs, les bases de données et les CRM exportent par défaut, car ce n'est que du texte : une ligne d'en-tête, puis une ligne par enregistrement, avec un caractère qui marque où se termine une colonne et où commence la suivante. Le JSON, lui, est ce que les applications web modernes, les API REST et JavaScript lui-même attendent réellement : un tableau d'objets, chacun indexé par le nom de son champ. Ce convertisseur comble cet écart entièrement dans votre navigateur, transformant les lignes d'un export CSV ou TSV en un tableau JSON propre et structuré en le temps d'un clic.

Cet écart entre les deux formats surgit sans cesse dans le travail quotidien. Un développeur backend reçoit de l'équipe QA un tableur d'utilisateurs de test et doit le transformer en fixture JSON pour un test d'intégration. Un développeur frontend récupère un catalogue de produits exporté d'un système de gestion de stock et a besoin d'un tableau d'objets pour l'afficher sous forme de cartes. Un analyste de données extrait un rapport d'un CRM et doit le faire entrer dans un script qui ne lit que du JSON. Aucune de ces personnes ne veut écrire un analyseur syntaxique à la main, ni installer un outil en ligne de commande pour une conversion ponctuelle qui prend dix secondes ici.

Conversion CSV vers JSON, étape par étape

  1. Collez votre CSV. Déposez vos lignes dans le champ « Entrée CSV », qu'il s'agisse d'un copier-coller depuis Excel, Google Sheets, un export de base de données, ou un fichier TSV où des tabulations séparent les colonnes au lieu de virgules.
  2. Réglez le délimiteur. Laissez-le sur « Détection Automatique » pour la plupart des fichiers, ou choisissez directement Virgule, Tabulation, Point-virgule ou Barre verticale si vous connaissez déjà le caractère utilisé par votre export.
  3. Choisissez vos options d'en-tête et de type. Gardez « Première Ligne comme En-têtes » cochée pour utiliser votre ligne d'en-tête comme clés JSON, et activez ou non « Convertir les Nombres » selon que les champs à l'apparence numérique, comme des âges ou des prix, doivent devenir de vrais nombres JSON ou rester du texte.
  4. Cliquez sur « Convertir en JSON ». L'analyseur construit le tableau en bien moins d'une seconde, indenté comme vous l'avez choisi, et le dépose dans le champ « Sortie JSON » ci-dessous.
  5. Copiez ou téléchargez le résultat. Récupérez-le en un clic sur Copier, ou utilisez « Télécharger .json » pour l'enregistrer sous forme de fichier que vous pourrez transmettre, joindre ou importer directement dans un autre outil.

Chaque étape se déroule sur votre propre appareil. Il n'y a aucun envoi vers un serveur, aucune file d'attente, et aucune limite artificielle de lignes, puisque c'est le JavaScript exécuté dans votre onglet qui fait tout le travail.

Pourquoi le Délimiteur Compte : Virgule, Point-Virgule, Tabulation et Barre Verticale

Le « CSV » est en réalité une famille de formats plutôt qu'une norme stricte unique, et le caractère qui sépare vos colonnes n'est pas toujours une virgule, quoi qu'en dise l'extension du fichier. Cet outil embarque une étape de Détection Automatique précisément pour cette raison : il échantillonne les cinq premières lignes de votre texte collé, compte combien de fois chaque délimiteur candidat (tabulation, virgule, point-virgule, barre verticale) apparaît en dehors des sections entre guillemets, puis retient le caractère qui revient le plus régulièrement d'une ligne à l'autre plutôt que celui qui apparaît le plus souvent en tout. Un fichier où chaque ligne contient exactement trois points-virgules et aucune virgule est un signal clair, même si un point-virgule se glisse aussi, ailleurs, dans un champ de commentaire entre guillemets.

La surprise la plus fréquente est le point-virgule. Excel associe son séparateur de liste par défaut aux paramètres régionaux de Windows, et en France comme dans une bonne partie de l'Europe continentale, la virgule sert déjà de séparateur décimal pour les nombres, un prix s'écrivant "12,50" plutôt que "12.50". Si Excel utilisait aussi la virgule comme séparateur de champ, une simple colonne de prix se scinderait silencieusement en deux colonnes à chaque export. Pour éviter cette collision, Excel configuré en français exporte ses fichiers CSV avec des points-virgules comme délimiteur, même si le fichier continue de porter l'extension ".csv". Une ligne qui ressemble à "Nom;Ville;Salaire" avec une valeur "4500,75" est un export tout à fait normal d'un tableur français, pas un fichier corrompu. C'est l'une des premières choses qui déroutent un développeur qui reçoit son premier export CSV d'un collègue comptable et voit son analyseur habituel produire une seule colonne géante au lieu de plusieurs.

DélimiteurOrigine typiqueExemple de ligne
Virgule (,)Excel et Google Sheets en anglais, la plupart des APIAlice,30,Lyon
Point-virgule (;)Excel en français, allemand, espagnol, italienAlice;30;Lyon
TabulationExports TSV, extractions de bases de données, copier-coller de tableursAlice   30   Lyon
Barre verticale (|)Exports d'anciens systèmes, certains formats de journauxAlice|30|Lyon

Si la Détection Automatique se trompe, le plus souvent sur un fichier très court avec seulement une ou deux lignes à échantillonner, choisissez simplement le bon délimiteur dans le menu déroulant. Le reste de la logique d'analyse, guillemets, guillemets échappés et inférence de type, fonctionne exactement de la même façon quel que soit le délimiteur actif.

Champs Entre Guillemets, Virgules Internes et Retours à la Ligne

Un analyseur CSV naïf se contente de découper chaque ligne sur le caractère délimiteur, et cela casse dès qu'un champ contient ce délimiteur lui-même. Les données CSV réelles en sont pleines : une colonne "Nom, Prénom", une adresse avec une virgule avant le code postal, une description de produit listant des caractéristiques séparées par des virgules. La solution, normalisée depuis des décennies dans ce que l'on appelle communément la RFC 4180, consiste à entourer de guillemets doubles tout champ contenant le délimiteur, et ce convertisseur applique cette règle comme une véritable machine à états qui lit caractère par caractère plutôt qu'un simple découpage.

Concrètement, une ligne comme "Dupont, Jean",42,"Lyon, Rhône" se convertit correctement en un champ nom valant "Dupont, Jean" et un champ ville valant "Lyon, Rhône", chacun restant une seule valeur au lieu de se scinder en colonnes supplémentaires. L'analyseur suit un indicateur interne, activé dès qu'il rencontre un guillemet ouvrant, et ne traite une virgule comme séparateur de champ que lorsque cet indicateur est désactivé.

Guillemets échappés et champs multi-lignes

Deux cas particuliers apparentés reviennent constamment dans les exports réels. D'abord, un guillemet double littéral à l'intérieur d'un champ entre guillemets s'écrit comme deux guillemets doubles consécutifs, si bien que "Elle a dit ""bonjour"" en entrant" se décode en un seul champ lisant "Elle a dit "bonjour" en entrant", les guillemets doublés étant ramenés à un seul. Ensuite, un champ entre guillemets peut contenir un véritable retour à la ligne, ce qui arrive chaque fois qu'une colonne de tableur contient une adresse sur plusieurs lignes, une note ou un commentaire. L'analyseur ne s'arrête pas au premier caractère de saut de ligne rencontré à l'intérieur d'un champ ouvert ; il continue de lire, retours à la ligne compris, jusqu'au guillemet fermant, si bien qu'une adresse client exportée sur deux lignes physiques se retrouve en JSON sous la forme d'une seule chaîne contenant un \n intégré, plutôt que d'être coupée en deux ou de déborder sur la ligne suivante.

C'est exactement ce genre de cas qui casse les conversions CSV vers JSON réalisées avec une expression régulière rapide ou un simple split(','). Cet analyseur existe précisément pour que ces situations n'aient plus besoin d'être traitées à la main.

Lignes d'En-tête et Noms de Colonnes Dupliqués

Avec « Première Ligne comme En-têtes » cochée, la première ligne de vos données collées fournit le nom de clé de chaque champ dans chaque objet qui suit, si bien qu'un en-tête comme nom,email,age donne à chaque objet de sortie exactement ces trois clés, dans cet ordre. Décochez l'option pour des données CSV sans ligne d'en-tête du tout, peut-être un export brut de base de données ou un fichier de journal, et l'outil se rabat alors sur des clés génériques, col1, col2, col3 et ainsi de suite, numérotées selon la position de la colonne, afin que rien ne soit silencieusement perdu.

Les noms d'en-tête dupliqués méritent une attention particulière, car leur mode d'échec est silencieux plutôt que de produire un message d'erreur. Un objet JSON ne peut porter qu'une seule propriété par clé, donc une ligne d'en-tête comme nom,telephone,telephone, peut-être un tableur avec des colonnes distinctes « téléphone fixe » et « téléphone mobile » toutes deux simplement étiquetées « telephone », produit un objet où la seconde valeur de téléphone écrase la première pendant la conversion. Le JSON obtenu est parfaitement valide, il contient simplement, sans avertissement, un seul numéro de téléphone au lieu de deux. La correction se fait entièrement du côté de l'entrée : renommez les colonnes dupliquées avant de coller vos données, par exemple en telephone_fixe et telephone_mobile, afin que chaque clé de la ligne d'en-tête soit unique avant même que la conversion ne commence.

Inférence de Type : Nombres, Booléens et le Problème du Zéro Initial

Le CSV n'a aucune notion de types de données. Chaque cellule, qu'elle contienne un nom, un âge, un prix ou une valeur de case à cocher, est stockée comme du texte brut, et c'est la case « Convertir les Nombres » qui décide de la part de ce texte qui sera promue vers un véritable type JSON plutôt que de rester une chaîne. Quand l'option est cochée, tout champ qui réussit un test numérique est converti avec la fonction Number() de JavaScript, si bien que "age": "30" dans le CSV devient "age": 30 dans le JSON, prêt pour des calculs ou des comparaisons sans étape de conversion supplémentaire dans votre propre code.

Cette commodité a un coût réel pour les valeurs qui ont seulement l'air numériques. Un code produit "007", un numéro de compte "0042", ou un code postal comme "01000" réussissent tous ce test numérique et sont convertis respectivement en 7, 42 et 1000, perdant silencieusement les zéros initiaux qui leur donnaient tout leur sens. En France, ce piège touche directement les codes postaux des départements numérotés de 01 à 09 : "01000" pour Bourg-en-Bresse devient 1000, et "07100" pour Annonay devient 7100, deux valeurs devenues indiscernables d'un code postal qui aurait légitimement commencé par 1000 ou 7100 sans le zéro. Un code postal est un identifiant, pas une quantité, et une fois réduit au nombre 1000, plus rien ne le distingue d'un autre identifiant qui aurait pris cette forme par coïncidence. Si vos données mélangent des identifiants, des codes ou des codes postaux avec des champs réellement numériques, décochez « Convertir les Nombres » avant de convertir et conservez tout sous forme de chaînes, ou convertissez deux fois et corrigez manuellement les seuls champs identifiants dans le résultat.

Valeur CSVConvertir les Nombres activéConvertir les Nombres désactivé
3030 (nombre)"30" (chaîne)
0077 (nombre, zéro perdu)"007" (chaîne, préservée)
truetrue (booléen)true (booléen, toujours converti)
cellule videnullnull (toujours converti)

Deux lignes de ce tableau sont faciles à manquer : la conversion des booléens et le traitement des cellules vides se produisent tous deux de façon inconditionnelle, indépendamment de la case « Convertir les Nombres ». Une cellule contenant le texte true ou false, sans distinction de casse, devient toujours un véritable booléen JSON, et une cellule réellement vide devient toujours null plutôt qu'une chaîne vide "". Cela compte si un code qui lit la sortie vérifie un champ avec === null spécifiquement, ou s'attend à ce que toutes les valeurs d'une même clé partagent le même type JavaScript ; une colonne parfois vide produira un mélange de chaînes et de valeurs null à travers le tableau plutôt qu'une colonne uniforme de chaînes vides.

UTF-8 contre Windows-1252 : Corriger les Caractères Accentués Abîmés par Excel

Les bugs d'encodage de texte comptent parmi les plus déroutants à diagnostiquer, car le fichier paraît parfaitement correct dans le programme qui l'a créé et ne casse qu'en aval. Le cas classique : un champ de nom contenant "café" ou "François" est exporté depuis Excel, collé dans ce convertisseur ou tout autre outil compatible UTF-8, et ressort sous la forme café ou François. Ce charabia à double encodage porte un nom, le mojibake, et une cause précise : le fichier a été enregistré avec une page de code Windows sur 8 bits, le plus souvent Windows-1252, où le "é" tient sur un seul octet, mais il est ensuite lu par quelque chose qui attend de l'UTF-8, où ce même caractère occupe deux octets, et chacun de ces deux octets se retrouve interprété à tort comme son propre caractère séparé.

La correction se trouve dans la boîte de dialogue Enregistrer sous d'Excel, pas dans cet outil, puisqu'au moment où du texte abîmé a déjà été collé, les octets d'origine ont déjà disparu. Sous Windows, choisir le type de fichier "CSV (séparateur : point-virgule)" classique dans la liste continue souvent, sur de nombreuses installations, à utiliser la page de code régionale du système, tandis que "CSV UTF-8 (délimité par des virgules)" écrit explicitement le fichier en encodage UTF-8, exactement ce qu'attendent les navigateurs et ce convertisseur. Si vous recevez régulièrement des fichiers CSV avec des caractères accentués abîmés de la part d'un collègue, lui demander de réexporter avec l'option UTF-8, ou ouvrir le fichier dans un éditeur de texte brut et l'enregistrer à nouveau avec l'encodage UTF-8 explicitement sélectionné, corrige le problème à la source plutôt que d'avoir à le rattraper après coup.

Indicateur d'ordre des octets et lignes vides en fin de fichier

Deux artefacts d'encodage plus discrets méritent d'être connus. Excel ajoute souvent un indicateur d'ordre des octets, une signature UTF-8 invisible parfois visible sous la forme  si elle est mal interprétée, tout au début d'un fichier CSV en UTF-8, censée aider d'autres programmes à détecter automatiquement l'encodage mais qui apparaît parfois comme un caractère parasite collé au premier nom d'en-tête si un outil ne la retire pas. Par ailleurs, les exports de tableurs se terminent couramment par une ligne vide après la dernière ligne réelle de données. Ce convertisseur filtre toute ligne dont chaque cellule est vide avant de construire le tableau JSON, si bien qu'un retour à la ligne final dans votre fichier ne produit pas d'objet vide superflu à la fin de votre résultat.

Pourquoi ce Convertisseur Fonctionne Entièrement dans Votre Navigateur

Beaucoup d'outils « convertir CSV en JSON en ligne » téléversent discrètement tout ce que vous collez vers un serveur, le traitent là-bas, puis vous renvoient un résultat. Cet aller-retour reste invisible en usage normal, mais il signifie que vos données ont séjourné, ne serait-ce que brièvement, sur une machine que vous ne contrôlez pas. Pour un jeu de données d'exemple public, ce n'est pas un problème. Pour une fiche de paie, une liste de clients, un tarif fournisseur, ou tout ce qui relève d'un accord de confidentialité, c'est un risque réel auquel la plupart des gens ne pensent jamais à vérifier.

Ce convertisseur ne fait jamais ce trajet. La logique d'analyse est du JavaScript ordinaire livré avec la page, et elle s'exécute entièrement dans votre propre onglet de navigateur dès que vous cliquez sur Convertir. Ouvrez l'onglet réseau de votre navigateur pendant que vous l'utilisez, vous n'y verrez passer aucune requête transportant vos données CSV. Cela a aussi une conséquence pratique au-delà de la confidentialité : il n'existe aucune limite de débit côté serveur, aucun plafond de taille de fichier imposé par une API, et aucune file d'attente à attendre, puisque c'est votre propre appareil qui fait tout le travail plutôt qu'un serveur partagé.

Ce que cela signifie pour les exports confidentiels

Si vous convertissez des fiches de paie, des données financières, des informations produit non encore annoncées, ou toute autre donnée qui ne devrait pas quitter votre organisation, un outil purement local retire ce risque de l'équation au lieu de vous demander de faire confiance à une politique de confidentialité que vous n'avez pas lue. C'est le même raisonnement qui pousse les développeurs à exécuter un formateur de code en local plutôt que de coller du code source propriétaire dans un formulaire web quelconque : l'outil le plus sûr est celui qui n'a jamais eu la possibilité de faire fuiter quoi que ce soit.

Usages Courants de ce Convertisseur CSV vers JSON

La même étape de conversion revient dans des métiers très différents. Quelques schémas se répètent constamment.

Prototypage frontend sans backend

Les développeurs frontend qui construisent un composant, un tableau ou une maquette de tableau de bord ont souvent besoin de données d'exemple réalistes avant qu'une véritable API n'existe. Exporter un tableur de lignes d'exemple et le convertir ici produit un tableau JSON immédiatement utilisable, à déposer directement dans un fichier de données fictives ou une fixture locale.

Alimenter une base de données documentaire ou NoSQL

Des bases comme MongoDB stockent des documents sous forme d'objets proches du JSON, pas de tables, si bien qu'un jeu de données qui a commencé sa vie comme export de tableur doit souvent devenir un tableau JSON avant de pouvoir être importé avec un outil comme mongoimport. Convertir l'export ici est en général le chemin le plus rapide entre un tableur et un fichier importable.

Tests d'API et charges utiles fictives

Les ingénieurs QA et les développeurs backend qui construisent des cas de test dans des outils comme Postman ou Insomnia partent souvent d'un tableur d'exemples d'entrées, une ligne par cas de test, et ont besoin de ces mêmes données sous forme de tableau JSON de corps de requêtes. Convertir une seule fois ici garde le tableur comme source de vérité tout en produisant exactement la forme JSON attendue par un exécuteur de tests.

Migration de données et scripts ponctuels

Migrer des données entre systèmes, un export d'un ancien CRM vers le format d'import d'une nouvelle plateforme, ou une extraction de base de données héritée vers une application moderne, implique fréquemment un script qui lit du JSON. Convertir l'export brut ici en amont évite d'avoir à écrire une étape d'analyse CSV à l'intérieur même de ce script.

Configuration et contenu depuis des tableurs

Les collègues non techniques sont souvent bien plus à l'aise pour tenir une liste dans Google Sheets que pour éditer directement un fichier JSON, qu'il s'agisse d'une liste de questions fréquentes, de catégories de produits ou de drapeaux de fonctionnalité. Convertir leur tableur ici à chaque mise à jour garde le fichier JSON synchronisé avec ce qu'ils ont modifié le plus récemment, sans qu'ils aient à toucher un éditeur de texte.

Conseils pour des Conversions Propres et Pièges Courants

La plupart des surprises de conversion se ramènent à l'une de ces cinq causes : le mauvais délimiteur, une conversion numérique non désirée, un en-tête dupliqué, un décalage d'encodage, ou des espaces réduits. Aucune de ces situations n'est un bug de l'analyseur, ce sont des propriétés des données source qui méritent un coup d'œil rapide avant de cliquer sur Convertir.

Questions Fréquentes

Comment convertir un fichier CSV en JSON ?
Collez vos données CSV ou TSV dans le champ de saisie et cliquez sur "Convertir en JSON". L'analyseur lit le contenu ligne par ligne, utilise par défaut la première ligne comme clés d'objet, et construit un tableau JSON où chaque ligne restante devient un objet. Copiez le résultat ou téléchargez-le en fichier .json, sans jamais quitter la page.
Cet outil prend-il en charge les fichiers TSV (valeurs séparées par des tabulations) ?
Oui. Sélectionnez "Tabulation (TSV)" dans le menu Délimiteur, ou laissez la Détection Automatique s'en charger : elle reconnaît les caractères de tabulation d'elle-même. Le format TSV est courant pour les exports d'outils de tableur et de bases de données lorsque le texte lui-même risque de contenir des virgules.
Pourquoi mon fichier CSV exporté depuis Excel utilise-t-il des points-virgules au lieu de virgules ?
Excel lie son délimiteur CSV par défaut aux paramètres régionaux de Windows, et en France comme dans une grande partie de l'Europe continentale, la virgule sert déjà de séparateur décimal pour des nombres comme 12,50. Pour éviter qu'un séparateur de champ n'entre en collision avec une virgule décimale, Excel configuré en français exporte des points-virgules à la place. La Détection Automatique gère cela sans intervention, ou vous pouvez choisir directement "Point-virgule (;)".
Comment les champs entre guillemets contenant des virgules ou des retours à la ligne sont-ils traités ?
L'analyseur fonctionne comme une véritable machine à états plutôt que comme un simple découpage sur les virgules, il sait donc en permanence s'il se trouve à l'intérieur d'un champ entre guillemets. Une cellule écrite "Dupont, Jean" conserve sa virgule interne et reste un seul champ, et un champ entre guillemets contenant un véritable retour à la ligne, comme une adresse sur plusieurs lignes, est lu comme une seule valeur plutôt que d'être coupé au premier saut de ligne.
Que devient une valeur comme "007" ou un code postal avec un zéro initial ?
Cela dépend de la case "Convertir les Nombres". Cochée, tout champ à l'apparence numérique est converti en véritable nombre JSON, si bien que "007" devient 7 et qu'un code postal comme "01000" devient 1000, perdant leurs zéros initiaux de la même façon qu'un tableur le ferait. Décochez "Convertir les Nombres" avant de convertir si vos données contiennent des identifiants, des codes ou des codes postaux qui doivent rester intacts sous forme de chaînes.
Le convertisseur traite-t-il les cellules vides comme null ou comme une chaîne vide ?
Les cellules vides deviennent toujours null en JSON, que la case "Convertir les Nombres" soit cochée ou non, car cette conversion se produit de façon inconditionnelle pendant l'analyse. Une ligne comme "Alice,,Ingénieure" produit un champ intermédiaire valant null plutôt qu'une chaîne vide "", ce qui compte si du code en aval vérifie spécifiquement la valeur null ou attend un type chaîne sur chaque clé.
Pourquoi des caractères accentués comme café ou naïve s'affichent-ils sous forme de charabia ?
Ce charabia, souvent appelé mojibake, survient quand un fichier a été enregistré dans un encodage Windows sur 8 bits comme Windows-1252 mais qu'il est ensuite lu comme de l'UTF-8 par votre navigateur ou un outil en aval, ou l'inverse. Un symptôme fréquent est "café" qui devient "café" ou "François" qui devient "François". La correction consiste à exporter depuis Excel avec l'option "CSV UTF-8" dans la boîte Enregistrer sous plutôt qu'avec l'option "CSV" classique, qui reste souvent en Windows-1252 par défaut sur de nombreuses installations.
Que se passe-t-il si mon CSV contient des noms de colonnes dupliqués dans la ligne d'en-tête ?
Un objet JSON ne peut pas porter deux propriétés avec la même clé, donc si votre ligne d'en-tête contient deux colonnes toutes deux nommées "telephone", la seconde écrase silencieusement la première dans chaque objet de sortie et le premier numéro est perdu. Renommez les en-têtes dupliqués, par exemple en "telephone1" et "telephone2", avant de coller vos données, pour éviter de perdre une colonne entière sans aucun message d'erreur.
Existe-t-il une limite de taille pour le fichier CSV à convertir ?
Cet outil n'impose aucune limite artificielle de taille de fichier, puisque la conversion se déroule localement plutôt que via une API serveur soumise à une limite de taille de requête. En pratique, des tableurs de plusieurs dizaines de milliers de lignes se convertissent en bien moins d'une seconde sur un ordinateur portable classique, et la véritable limite est la mémoire disponible dans l'onglet de votre navigateur pour les fichiers vraiment volumineux.
Mes données CSV restent-elles privées, ou sont-elles envoyées vers un serveur ?
Rien n'est envoyé où que ce soit. L'analyse s'exécute en JavaScript à l'intérieur de votre propre onglet de navigateur, si bien que les fiches de paie, les listes de clients et les autres données de tableur couvertes par des accords de confidentialité ne quittent jamais votre appareil. Vous pouvez couper votre connexion internet une fois la page chargée, le convertisseur continue de fonctionner exactement de la même façon.

Outils de Développement Associés

🔒 Confidentialité 100% Locale

Toute l'analyse CSV et la génération JSON se déroulent <strong>entièrement dans votre navigateur</strong>. Aucune donnée n'est jamais envoyée à un serveur. Vos données restent sur votre appareil à tout moment.