CSV (Comma-Separated Values) est un format tabulaire en texte brut où chaque ligne constitue un enregistrement et les champs d'un enregistrement sont séparés par un délimiteur, généralement une virgule. CSV est un format d'échange standard depuis les débuts de l'informatique personnelle, formalisé dans la RFC 4180. Les tableurs, bases de données et outils d'export produisent du CSV parce qu'il est simple, compact et lisible par pratiquement tous les langages de programmation.
JSON (JavaScript Object Notation) représente les données structurées sous forme de paires clé-valeur et de tableaux ordonnés. Contrairement au CSV, JSON prend en charge les objets imbriqués, les valeurs typées (nombres, booléens, null) et les enregistrements de longueur variable. JSON étant nativement compris par les moteurs JavaScript, c'est le format dominant pour l'échange de données navigateur-serveur et les réponses d'API REST. Ces propriétés font de JSON le format par défaut pour les API web, les fichiers de configuration et les bases de données NoSQL comme MongoDB et CouchDB.
Convertir du CSV en JSON consiste à transformer chaque ligne du tableau en objet JSON, en utilisant la ligne d'en-tête comme noms de propriétés et les valeurs des cellules comme valeurs de propriétés. Le résultat est généralement un tableau JSON d'objets. Cette conversion est nécessaire dès que vous devez injecter des données tabulaires dans un système attendant du JSON structuré en entrée, comme une API REST, un composant de tableau frontend ou une base de données orientée documents.
Pourquoi utiliser cet outil ?
Ce convertisseur analyse votre CSV dans le navigateur, produit la sortie JSON instantanément et n'envoie jamais vos données vers un serveur.
⚡
Conversion instantanée
Collez du CSV et obtenez le résultat JSON immédiatement. Pas d'attente liée à un aller-retour serveur ni à un téléversement de fichier. La conversion s'effectue au fil de la frappe.
🔒
Traitement axé sur la confidentialité
Vos données restent dans votre onglet de navigateur. Rien n'est transmis sur le réseau. Idéal pour les jeux de données internes, les identifiants ou les données personnelles qui ne doivent pas quitter votre machine.
🔀
Détection automatique du délimiteur
L'outil reconnaît les délimiteurs virgule, tabulation, point-virgule et pipe. Vous pouvez également définir le délimiteur manuellement si votre fichier utilise un séparateur inhabituel.
📋
Copier ou télécharger
Copiez le résultat JSON dans votre presse-papiers en un clic ou téléchargez-le sous forme de fichier .json. Prêt à l'emploi dans votre code, votre client API ou l'import de votre base de données.
Cas d'utilisation CSV vers JSON
Développement frontend
Convertissez un export CSV d'un outil de design ou d'un tableur en JSON pour l'utiliser comme données fictives pour des composants React, Vue ou Angular lors du prototypage.
Alimentation d'API backend
Transformez des exports CSV de bases de données en payloads JSON pour alimenter une API REST ou GraphQL. De nombreux ORM et outils de migration acceptent des fixtures JSON pour le chargement initial des données.
Configuration DevOps
Convertissez des inventaires CSV ou des matrices d'environnement en JSON pour les utiliser dans des playbooks Ansible, des fichiers de variables Terraform ou des configurations de pipeline CI/CD.
Préparation de données de test QA
Transformez des matrices de tests basées sur des tableurs en tableaux JSON consommables par des frameworks de test comme Jest, pytest ou Playwright pour les tests pilotés par les données.
Pipelines d'ingénierie des données
Convertissez les sorties CSV de requêtes SQL ou d'exports ETL en JSON pour les charger dans des entrepôts documentaires comme MongoDB, Elasticsearch ou le mode d'ingestion JSON de BigQuery.
Projets étudiants et apprentissage
Convertissez rapidement des jeux de données CSV d'exemple (Kaggle, portails open data gouvernementaux) en JSON pour les utiliser dans des cours de développement web, des tutoriels ou des projets personnels.
Référence des délimiteurs CSV
Les fichiers CSV n'utilisent pas toujours des virgules. Le délimiteur dépend de la locale, de l'application exportatrice et du contenu des données. Voici les quatre délimiteurs les plus courants et les contextes dans lesquels ils sont généralement utilisés :
Délimiteur
Standard
Extension
Notes
Comma (,)
RFC 4180 default
.csv
Most common; Excel default export
Tab (\t)
TSV variant
.tsv
Avoids quoting fields that contain commas
Semicolon (;)
European locale CSV
.csv
Used where comma is the decimal separator (DE, FR, BR)
Pipe (|)
Fixed-width alternative
.csv
Rare in field values, good for messy data
CSV vs JSON : différences structurelles
L'écart entre les deux formats explique pourquoi le mappage des en-têtes, l'inférence de types et la gestion des valeurs manquantes nécessitent des décisions explicites lors de la conversion.
CSV
Format plat orienté lignes. Chaque enregistrement possède le même nombre de champs. Toutes les valeurs sont des chaînes sauf si le consommateur infère les types. Pas de support pour l'imbrication ni les enregistrements de longueur variable. La ligne d'en-tête est optionnelle selon la RFC 4180, mais obligatoire pour une conversion JSON pertinente.
JSON
Format arborescent auto-descriptif. Chaque objet peut avoir des clés différentes. Les valeurs sont typées : chaîne, nombre, booléen, null, objet ou tableau. Prend en charge une imbrication arbitraire. L'ordre des propriétés n'est pas garanti par la spécification JSON (ECMA-404), bien que la plupart des parseurs préservent l'ordre d'insertion.
Exemples de code
Comment convertir du CSV en JSON par programmation dans les langages et outils CLI les plus courants :
import csv, json, io
csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""
reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]
# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
headers := records[0]
var result []map[string]string
for _, row := range records[1:] {
obj := make(map[string]string)
for i, h := range headers {
obj[h] = row[i]
}
result = append(result, obj)
}
out, _ := json.MarshalIndent(result, "", " ")
fmt.Println(string(out))
// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
# Using csvjson from csvkit (Python-based)
csvjson data.csv
# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"
Questions fréquentes
Comment le convertisseur gère-t-il les fichiers CSV sans ligne d'en-tête ?
Si votre CSV n'a pas de ligne d'en-tête, le convertisseur utilise des clés générées automatiquement comme « field1 », « field2 », etc. Pour de meilleurs résultats, ajoutez une ligne d'en-tête avant la conversion, ou renommez les clés dans la sortie JSON après coup.
Que se passe-t-il avec les champs entre guillemets contenant des virgules ou des sauts de ligne ?
Le parseur respecte les règles de guillemets de la RFC 4180. Les champs encadrés de guillemets doubles peuvent contenir des virgules, des sauts de ligne, et même des guillemets doubles (échappés en les doublant). Le convertisseur supprime les guillemets externes et préserve le contenu interne comme une seule valeur de chaîne JSON.
La conversion préserve-t-elle les types de données comme les nombres et les booléens ?
CSV est un format sans typage ; toutes les valeurs des cellules sont des chaînes. Ce convertisseur produit des valeurs de type chaîne par défaut afin d'éviter toute perte de données. Si vous avez besoin d'une sortie typée, analysez le résultat JSON dans votre application et transtypez les champs explicitement. Des bibliothèques comme Papa Parse (JavaScript) et pandas (Python) offrent des options de typage dynamique lors du parsing.
Puis-je convertir du CSV avec des points-virgules ou des tabulations au lieu de virgules ?
Oui. L'outil prend en charge les délimiteurs virgule, tabulation, point-virgule et pipe. Sélectionnez le bon délimiteur dans le menu déroulant, ou laissez la détection automatique l'identifier. Les points-virgules sont courants dans les exports CSV avec paramètres régionaux européens depuis Excel, où la virgule sert de séparateur décimal.
Y a-t-il une limite de taille pour l'entrée CSV ?
Le traitement s'effectuant entièrement dans votre navigateur, la limite pratique dépend de la mémoire disponible sur votre appareil. Les fichiers jusqu'à 10-20 Mo se convertissent généralement sans problème sur du matériel récent. Pour les très grands fichiers (centaines de Mo), utilisez un parseur en streaming comme Papa Parse dans Node.js ou le module csv de Python, qui traitent les données ligne par ligne sans tout charger en mémoire.
Comment gérer les lignes CSV avec un nombre de colonnes différent ?
Les CSV irréguliers (lignes avec moins ou plus de champs que l'en-tête) sont courants dans les exports réels. Ce convertisseur remplit les champs manquants par des chaînes vides et ignore les champs supplémentaires au-delà du nombre d'en-têtes. Si vos données sont systématiquement irrégulières, inspectez le fichier source à la recherche de délimiteurs non échappés ou de guillemets manquants.
Quelle est la différence entre un tableau JSON et un objet JSON en sortie ?
Un tableau JSON d'objets est la sortie standard : chaque ligne CSV devient un objet dans le tableau, avec les noms d'en-têtes comme clés. Certains outils proposent également une sortie « orientée colonnes » où chaque en-tête devient une clé avec un tableau de toutes les valeurs de cette colonne. Le format tableau d'objets est plus courant pour les API, les bases de données et la liaison de données frontend.