CSV (Comma-Separated Values) et JSON (JavaScript Object Notation) sont deux des formats d'échange de données les plus utilisés. CSV excelle pour les données tabulaires avec un minimum de surcharge, tandis que JSON gère facilement les données hiérarchiques et imbriquées.
Pourquoi convertir CSV en JSON ?
Les fichiers CSV sont compacts et faciles à générer. Mais CSV a des limitations significatives : pas de standard pour les types, pas de support pour les structures imbriquées et gestion ambiguë des caractères spéciaux. JSON résout ces problèmes.
Les scénarios courants incluent la migration de données vers une application web, la transformation d'exports de bases de données pour les APIs, le prétraitement de données pour des bibliothèques de visualisation comme D3.js, et l'alimentation de pipelines de machine learning.
La transformation de base
La conversion la plus simple traite la première ligne comme en-têtes :
nom,age,villeAlice,30,ParisBob,25,LyonSe convertit en :
[ { "nom": "Alice", "age": 30, "ville": "Paris" }, { "nom": "Bob", "age": 25, "ville": "Lyon" }]Remarquez que age est maintenant un nombre. CSV n'a pas d'information de type, donc un bon convertisseur doit inférer les types. Le CSV to JSON Converter gère cela automatiquement.
Gestion des délimiteurs
La virgule est le délimiteur par défaut, mais les fichiers CSV utilisent fréquemment des points-virgules, des tabulations ou des pipes — en particulier dans les locales européennes.
- Délimiteurs personnalisés — Les valeurs séparées par des tabulations utilisent
\t - Champs entre guillemets — Quand un champ contient le délimiteur :
"Paris, France" - Guillemets échappés — Un guillemet dans un champ est doublé
- Sauts de ligne — Les champs entre guillemets peuvent couvrir plusieurs lignes
N'essayez pas de diviser par virgules naïvement — utilisez une bibliothèque d'analyse CSV appropriée.
Coercition de types
CSV ne distingue pas entre 42 (nombre) et "42" (chaîne). Vous avez besoin d'une stratégie d'inférence :
function coercer(valeur) { if (valeur === '') return null; if (valeur === 'true') return true; if (valeur === 'false') return false; if (/^-?\d+(\.\d+)?$/.test(valeur)) return Number(valeur); return valeur;}Données imbriquées
CSV est plat par conception. Pour les structures imbriquées, utilisez la notation par points (adresse.ville) ou la notation par crochets (tags[0], tags[1]). Un bon convertisseur effondre ces structures en objets JSON et tableaux appropriés.
Erreurs courantes
- Encodage des caractères — Les fichiers CSV peuvent être en UTF-8, Latin-1 ou Windows-1252.
- Longueurs de lignes incohérentes — Certaines lignes peuvent avoir moins de colonnes que les en-têtes.
- CSV sans en-têtes — Pas tous les fichiers CSV ont des en-têtes.
- Grands fichiers — Ne chargez pas un CSV de 2 Go en mémoire. Utilisez des analyseurs en streaming.
- BOM (Byte Order Mark) — Certains fichiers CSV commencent par un BOM UTF-8 qui peut casser l'analyse des en-têtes.
Essayez-le
Si vous devez convertir des données CSV en JSON rapidement, utilisez un outil local — aucune donnée n'est envoyée.