Comment convertir CSV en JSON

· 7 min de lecture

CSV (Comma-Separated Values) est le format le plus simple pour les donnees tabulaires, chaque tableur peut l'exporter. JSON (JavaScript Object Notation) est le format standard pour les API web et les applications modernes. Convertir entre eux est l'une des taches de donnees les plus courantes en developpement. Un convertisseur base sur navigateur gere tout le travail localement sans televerser vos donnees sur un serveur.

Quand vous avez besoin de CSV vers JSON

Comment le CSV devient JSON

Un fichier CSV :

name,age,city
Alice,30,New York
Bob,25,London

Devient un tableau JSON d'objets :

[
  {"name": "Alice", "age": "30", "city": "New York"},
  {"name": "Bob", "age": "25", "city": "London"}
]

La premiere ligne (en-tetes) devient les cles. Chaque ligne suivante devient un objet.

Comment convertir

  1. Collez vos donnees CSV : entrez des donnees separees par des virgules avec une ligne d'en-tete.
  2. Choisissez votre delimiteur : selectionnez virgule, point-virgule, tabulation ou pipe. L'outil detecte automatiquement dans la plupart des cas.
  3. Copier ou telecharger : revisez la sortie JSON et copiez-la dans votre presse-papiers ou telechargez-la sous forme de fichier .json.

Une breve histoire du CSV et du JSON

Le CSV est le format le plus ancien de plusieurs decennies. Le concept de texte separe par des virgules remonte aux annees 1960 et 1970 comme moyen d'echanger des donnees entre programmes mainframe. IBM Fortran (1972) prenait en charge l'E/S dirigee par liste qui produisait une sortie separee par des virgules. CSV n'a jamais ete formellement standardise jusqu'au RFC 4180 en 2005, moment auquel des milliards de fichiers CSV existaient deja avec des variations subtiles (regles de citation, fins de ligne, encodage).

JSON est arrive bien plus tard : Douglas Crockford l'a specifie en 2001, RFC formel 4627 en 2006, ECMA-404 en 2013. JSON a ete concu pour le web ; CSV a ete concu pour le traitement par lots de donnees sur mainframes. Les deux formats ont des forces differentes :

AspectCSVJSON
StructureTable plate (lignes + colonnes)Imbrique, hierarchique
TypesSans type (tout est texte)Type (chaine, nombre, bool, null, tableau, objet)
En-tetesConvention premiere ligneNoms de champ par objet
TailleCompact pour donnees tabulairesPlus verbeux, inclut la structure
OutilsExcel, tous les tableursTout langage de programmation moderne
StreamingLigne par ligne facileAnalyse de fichier entier par defaut (mais JSON Lines existe)
Spec stricteRFC 4180 (2005), souvent ignoreeRFC 8259 (2017), stricte

La conversion CSV vers JSON est essentiellement une traduction des donnees plates orientees lignes en notation d'objet cle-valeur. La plupart des difficultes residents dans la gestion des cas limites (valeurs guillemetees, delimiteurs integres, encodages non-UTF-8) que la specification CSV n'a pas anticipes.

Gerer les donnees CSV delicates

Valeurs guillemetees : lorsqu'une valeur contient le caractere delimiteur (comme une adresse avec une virgule), elle doit etre encadree de guillemets doubles : "New York, NY". Les bons convertisseurs gerent cela correctement.

Valeurs vides : les cellules vides deviennent des chaines vides en JSON ("field": ""). Si vous en avez besoin comme null, vous devrez peut-etre post-traiter la sortie.

Valeurs numeriques : CSV n'a pas de types de donnees. Tout est texte. La sortie JSON aura des nombres sous forme de chaines ("30" et non 30). Si votre application a besoin de nombres reels, parsez-les apres conversion.

Sauts de ligne dans les valeurs : certains fichiers CSV ont des valeurs multilignes (encadrees de guillemets). Tous les convertisseurs ne gerent pas cela, testez avec vos donnees specifiques.

Guillemets echappes : un guillemet a l'interieur d'une valeur guillemetee est echappe en le doublant : "Elle a dit ""bonjour""". La plupart des analyseurs gerent cela correctement.

Espaces de fin : des espaces supplementaires dans les en-tetes comme name ,age, city creent des cles desordonnees. Les bons convertisseurs trim par defaut ; certains preservent les espaces litteralement.

Marques d'ordre des octets : un BOM UTF-8 au debut du fichier peut apparaitre comme les trois premiers caracteres du premier en-tete. Certains convertisseurs suppriment le BOM ; d'autres non.

Differentes fins de ligne : les fichiers CSV de Windows ont CRLF, Unix ont LF, anciens Macs avaient CR. Les analyseurs robustes gerent les trois.

Variantes de format de sortie

Les convertisseurs CSV vers JSON offrent souvent plusieurs options de sortie :

SortieExempleMeilleure utilisation
Tableau d'objets[{"a":1},{"a":2}]Reponses API, par defaut
Objet d'objets (cle par premiere colonne){"id1":{"name":"x"},"id2":{...}}Tables de recherche, enregistrements cles par ID
Tableau de tableaux[["a","b"],[1,2],[3,4]]Donnees de lignes brutes preservant l'ordre
Colonnaire{"a":[1,3],"b":[2,4]}Analyse statistique (compatible pandas)
JSON Lines (NDJSON){"a":1}\n{"a":2}Streaming, traitement de journaux
Imbrique par en-tete[{"address":{"city":"NY"}}] depuis address.cityDonnees imbriquees depuis CSV plat

Le defaut est tableau d'objets, qui fonctionne pour presque tous les scenarios d'API web. JSON Lines est utile si vous avez des millions de lignes et avez besoin d'un traitement en streaming.

Inference de type

Certains convertisseurs offrent l'inference de type :

Pour un usage interne ou vous controlez les donnees, l'auto-inference fait gagner du temps. Pour une entree non fiable, laissez les types comme chaines et parsez explicitement dans votre code.

Pieges courants

Conseils

Confidentialite et donnees sensibles

Le convertisseur CSV vers JSON s'execute entierement dans votre navigateur. Les donnees que vous collez, le traitement intermediaire et le JSON de sortie restent tous sur votre appareil. Rien n'est televerse sur un serveur, enregistre ou partage avec qui que ce soit.

Cela importe car les CSV que vous convertissez contiennent souvent des donnees sensibles : listes de clients avec adresses e-mail et numeros de telephone, dossiers d'employes avec salaires, transactions financieres, donnees de pipeline de vente, leads marketing, analyses internes de produits, dossiers medicaux exportes des systemes EHR, notes d'etudiants, historique de paiements. Les convertisseurs CSV vers JSON en nuage enregistrent chaque collage, les conservent parfois pour «amelioration du service», et ont ete impliques dans de vraies fuites de donnees ou des listes de clients collees ont fui vers des attaquants surveillant les journaux. Un convertisseur base sur navigateur a une exposition nulle : les donnees ne quittent jamais votre machine.

La conversion basee sur navigateur fonctionne aussi hors ligne une fois la page chargee, utile pour traiter des donnees dans les avions, dans des environnements securises sans acces internet, ou partout ou vous ne pouvez pas ou ne devriez pas coller des donnees clients ou financieres dans un service tiers.

Questions fréquentes

Que se passe-t-il avec la ligne d'en-tête ?

La première ligne est utilisée comme clés pour les objets JSON. Chaque ligne suivante devient un objet avec ces clés. Par exemple, un en-tête « name,age » avec une ligne « Alice,30 » devient {"name":"Alice","age":"30"}.

Quels délimiteurs sont pris en charge ?

Virgule, point-virgule, tabulation et barre verticale sont tous pris en charge. L'outil peut détecter automatiquement le délimiteur ou vous pouvez le choisir manuellement.

Gère-t-il les virgules à l'intérieur des valeurs ?

Oui. Les valeurs entourées de guillemets doubles (comme « New York, NY ») sont correctement gérées, la virgule à l'intérieur des guillemets est traitée comme faisant partie de la valeur, pas comme un séparateur.

Mes données sont-elles envoyées sur un serveur ?

Non. Toute la conversion se fait dans votre navigateur. Vos données ne quittent jamais votre appareil.