Pourquoi convertir CSV en JSON
CSV est un format de données tabulaires, le format par défaut exporté par Excel. JSON est un format adapté aux programmes, le standard pour le transport API. Convertir CSV en JSON permet aux données tabulaires d'être directement consommées par les programmes.
Scénarios courants :
- Importer des données Excel dans la base de données d'un site web
- Connecter des données tabulaires à une API
- Transférer des résultats d'analyse au frontend pour rendu
- Migrer une configuration depuis un tableur vers un fichier JSON
Différences entre CSV et JSON
Format CSV
name,age,city
Tom,25,Pékin
Jerry,30,Shanghai
- Texte brut, séparé par des virgules
- La première ligne est l'en-tête
- Une ligne = un enregistrement
- Aucun type (tout est chaîne)
- Aucune structure imbriquée
Format JSON
[
{"name": "Tom", "age": 25, "city": "Pékin"},
{"name": "Jerry", "age": 30, "city": "Shanghai"}
]
- Structuré, paires clé-valeur
- Typé (chaîne, nombre, booléen)
- Prend en charge l'imbrication
- Analyse directe par les programmes
Principe de conversion
Mappage d'en-têtes
La première ligne du CSV est l'en-tête. Lors de la conversion en JSON, l'en-tête devient les clés de l'objet :
- En-tête : name, age, city
- Première ligne de données : Tom, 25, Pékin
- Conversion : {"name": "Tom", "age": "25", "city": "Pékin"}
Reconnaissance des types de données
Toutes les valeurs CSV sont des chaînes. Lors de la conversion en JSON, le type peut être reconnu intelligemment :
- Nombre : "25" → 25 (nombre)
- Booléen : "true" → true (booléen)
- Valeur nulle : "" → null (null)
- Chaîne : reste une chaîne
Sans reconnaissance de type, tout est traité comme chaîne.
Génération de tableau
Chaque ligne CSV devient un objet, toutes les lignes forment un tableau :
[
{objet1},
{objet2}
]
Structure imbriquée
Problème
Le CSV est un tableau plat, JSON prend en charge l'imbrication. Comment convertir un CSV plat en JSON imbriqué ?
Méthode 1 : noms de clés à points
L'en-tête CSV utilise des points pour indiquer la hiérarchie :
name,address.city,address.zip
Tom,Pékin,100000
Converti en JSON :
{
"name": "Tom",
"address": {
"city": "Pékin",
"zip": "100000"
}
}
Méthode 2 : indices de tableau
name,tags[0],tags[1]
Tom,A,B
Converti en JSON :
{
"name": "Tom",
"tags": ["A", "B"]
}
Méthode 3 : séparateur point-virgule
name,tags
Tom,"A;B;C"
Converti en JSON :
{
"name": "Tom",
"tags": ["A", "B", "C"]
}
Étapes de conversion
1. Préparer le CSV
S'assurer que le format CSV est correct :
- La première ligne est l'en-tête
- Les champs sont séparés par des virgules
- Les champs contenant des virgules sont entourés de guillemets doubles
- Les champs contenant des guillemets doubles sont échappés en doublant les guillemets
2. Télécharger ou coller
Coller le contenu CSV dans l'outil de conversion, ou télécharger le fichier CSV.
3. Configurer les options
- Reconnaitre ou non les types de données
- Mode de traitement des structures imbriquées
- Format de sortie (tableau ou objets ligne par ligne)
4. Convertir
L'outil convertit automatiquement et sort le JSON.
5. Valider
Vérifier que le résultat JSON correspond aux attentes :
- Les champs sont-ils corrects
- Les types sont-ils corrects
- L'imbrication est-elle correcte
Problèmes courants
Champs contenant des virgules
Les champs CSV contenant des virgules doivent être entourés de guillemets doubles :
name,desc
Tom,"Hello, world"
Sans guillemets, ils seront considérés comme deux champs, et la conversion échouera.
Caractères chinois illisibles
Le CSV doit utiliser l'encodage UTF-8. Excel utilise par défaut GBK, choisir UTF-8 à l'export.
Traitement des valeurs vides
Une cellule CSV vide devient-elle une chaîne vide "" ou null en JSON ?
- Par défaut : chaîne vide ""
- Reconnaissance intelligente : null
- Selon l'option de l'outil
Précision des nombres
Les grands nombres peuvent perdre en précision lors de la conversion en JSON. Par exemple, un numéro d'identité à 18 chiffres converti en nombre devient notation scientifique. Les numéros d'identité doivent être traités comme des chaînes (ajouter un guillemet initial dans le CSV ou spécifier le type chaîne lors de la conversion).
Format de date
Le format de date CSV n'est pas unifié (2024-01-01, 2024/1/1, Jan 1 2024). En JSON, conserver en chaîne et laisser le frontend l'analyser.
En-tête BOM
Les CSV exportés par Excel peuvent contenir un en-tête BOM (\uFEFF), ce qui ajoute un caractère invisible avant le premier nom de champ. L'outil de conversion doit supprimer automatiquement le BOM.
Astuces de conversion
Prétraiter le CSV
Avant la conversion, nettoyer dans Excel :
- Supprimer les lignes vides
- Unifier le format de date
- Vérifier l'intégrité des champs
Conversion sélective
Ne convertir que les colonnes nécessaires. Supprimer les colonnes inutiles du CSV pour réduire la taille du JSON.
Conversion par lots
Un CSV très volumineux peut ralentir en une seule conversion. Convertir par lots de quelques centaines de lignes.
Validation du résultat
Après conversion, embellir avec un outil de formatage JSON et vérifier manuellement quelques entrées pour confirmer.
Convertir avec DocsAll
- Télécharger un fichier CSV ou coller le contenu CSV
- L'outil analyse automatiquement les en-têtes et les données
- Configurer les options de conversion (reconnaissance de type, etc.)
- Générer le JSON
- Copier ou télécharger le résultat
Conversion côté navigateur, les données CSV ne sont pas téléchargées sur le serveur, adapté aux données sensibles.
Conversion inverse : JSON vers CSV
Parfois, la conversion inverse est nécessaire, de JSON vers CSV :
- Une API renvoie du JSON, à exporter vers Excel pour analyse
- Exporter un champ JSON de base de données en tableur
Difficultés de JSON vers CSV :
- Aplatir la structure imbriquée
- Traiter les champs tableaux (concaténer ou développer en plusieurs lignes)
- Compléter les valeurs manquantes quand les champs ne sont pas uniformes
Résumé
La conversion CSV vers JSON repose sur le mappage des en-têtes en clés, la reconnaissance des types de données et le traitement des structures imbriquées. Attention aux champs contenant des virgules, à l'encodage chinois, aux valeurs vides et à la précision des grands nombres. L'outil CSV vers JSON de DocsAll s'exécute côté navigateur, les données ne sont pas transmises.