Aller au contenu principal
Tooletto

CSV vers JSON

Convertissez des données CSV et TSV en JSON, avec une gestion correcte des champs entre guillemets, des virgules intégrées et des sauts de ligne. L'inférence de type optionnelle convertit nombres et booléens en vraies valeurs JSON.

  • Les fichiers ne quittent jamais votre appareil
  • Gratuit, sans inscription
  • Aucun filigrane
  • Fonctionne hors ligne une fois chargé
Loading tool…

Comment utiliser CSV vers JSON

  1. 1

    Collez votre CSV

    Collez directement depuis un tableur, ou tapez-le.

  2. 2

    Définissez les options

    Choisissez un délimiteur, si la première ligne est un en-tête, et si les types sont déduits.

  3. 3

    Copiez le JSON

    Copiez le résultat ou téléchargez-le comme fichier .json.

Pourquoi diviser par virgules corrompt le CSV du monde réel

Le CSV paraît trivial à analyser — diviser chaque ligne par des virgules, traiter la première ligne comme en-têtes — jusqu'à ce qu'une valeur dans les vraies données contienne sa propre virgule, ce qui arrive constamment avec de vrais exports de tableur : une adresse comme "123 Rue Principale, Apt 4", un nom d'entreprise comme "Dupont, Martin & Cie", ou une description de produit contenant une liste. La spécification CSV, formalisée en RFC 4180, gère cela en permettant à un champ d'être enveloppé dans des guillemets doubles, à l'intérieur desquels virgules, sauts de ligne et même caractères guillemet littéraux (échappés en les doublant) sont simplement des données plutôt que de la structure. Un analyseur qui divise naïvement par chaque virgule, ignorant complètement les guillemets, corrompt exactement ces lignes — divisant "Dupont, Martin & Cie" en deux colonnes séparées — et le fait généralement silencieusement, sans aucune erreur signalant que quelque chose s'est mal passé, ce qui rend cette erreur dangereuse plutôt que simplement gênante.

L'analyse correctement consciente des guillemets suit si le lecteur est actuellement à l'intérieur d'un champ entre guillemets et ignore les caractères délimiteurs et de saut de ligne jusqu'à atteindre le guillemet de fermeture, ce qui est le seul moyen de reconstruire correctement des champs contenant légitimement les caractères qui seraient sinon confondus avec de la structure.

Ce que l'inférence de type réussit et où elle se retient délibérément

Chaque valeur dans un fichier CSV brut est du texte, le CSV n'ayant aucune notion native de nombre, booléen ou nul — une cellule contenant `42` et une cellule contenant `bonjour` sont stockées de façon identique comme caractères. L'inférence de type est le processus de deviner quelles chaînes étaient « réellement » destinées à être des nombres, des valeurs vrai/faux ou des nuls, et de les convertir en conséquence pour que le JSON résultant ait de vraies valeurs typées plutôt que tout entre guillemets comme une chaîne.

Cependant, la déduction doit être prudente, car pas mal de valeurs qui paraissent numériques ne sont pas du tout destinées à être traitées comme des nombres. Un zéro initial — `007`, `042` — signale généralement un identifiant ou un code avec remplissage où le zéro de tête est significatif et serait silencieusement détruit en convertissant en nombre, `7` et `007` étant le même nombre mais des identifiants très différents. Un numéro de téléphone comme `+44 20 7946 0958` paraît partiellement numérique mais n'est pas une donnée arithmétique. Les valeurs au-delà de la plage entière sûre de JavaScript perdent en précision si converties en nombre. Cet outil laisse tout cela en chaînes spécifiquement car mal deviner ici signifie corrompre silencieusement des données d'une façon facile à manquer bien après coup.

Pourquoi les en-têtes de colonne en double et vides ont besoin d'un traitement spécial

Un objet JSON ne peut pas avoir deux clés du même nom — la seconde trouvée écrase simplement la première, sacrifiant silencieusement la valeur de toute une colonne sans aucune erreur levée nulle part. Les exports de tableur produisent des en-têtes en double plus souvent qu'il n'y paraît probable : un rapport avec deux colonnes « Total » à des portées différentes, ou un export fusionné de deux sources qui utilisent toutes deux « Nom ». Détecter les doublons et renommer la seconde occurrence en `name_2` préserve les données de chaque colonne plutôt que de perdre silencieusement l'une d'entre elles selon celle qui apparaît en premier dans l'objet de ligne. Les en-têtes vides reçoivent le même traitement pour la même raison, le JSON n'ayant aucun moyen de représenter une clé qui est simplement une chaîne vide comme un champ significatif et adressable.

Questions fréquentes

Gère-t-il les virgules dans les champs entre guillemets ?

Oui. L'analyseur suit correctement la RFC 4180 : les champs entre guillemets peuvent contenir des virgules, sauts de ligne et guillemets échappés (écrits en ""). Les outils qui divisent par virgules corrompent exactement ce type de données, généralement sans aucune erreur.

Que fait l'inférence de type aux zéros initiaux ?

Elle les laisse intacts. `007`, `+44` et les valeurs au-delà de la plage entière sûre de JavaScript restent des chaînes, car ce sont presque toujours des ID, numéros de téléphone ou codes postaux — les convertir en nombres détruirait silencieusement des données. Seuls les nombres, booléens et nuls sans ambiguïté sont convertis.

Qu'en est-il des noms de colonnes en double ?

Ils sont rendus uniques — une seconde colonne `name` devient `name_2` — car deux clés identiques dans un objet JSON s'écraseraient silencieusement l'une l'autre. Les en-têtes vides deviennent `column_1`, `column_2` et ainsi de suite.

Puis-je convertir un fichier Excel directement ?

Pas encore — enregistrez-le ou exportez-le d'abord en CSV (Fichier → Enregistrer sous → CSV dans Excel et Google Sheets). Notez que les installations européennes d'Excel utilisent souvent un délimiteur point-virgule ; changez l'option de délimiteur si vos colonnes ressortent fusionnées.

Mes données sont-elles téléversées ?

Non. L'analyse fonctionne entièrement dans votre navigateur, ce qui compte car les exports CSV contiennent souvent exactement les données clients, financières ou d'employés qu'il ne faut pas coller sur le serveur de quelqu'un d'autre.

Tâches courantes pour CSV vers JSON