Convertisseur CSV et JSON
Convertit du CSV en tableau JSON d’objets ou de tableaux, ou du JSON en CSV. Détecte le séparateur et lit les fichiers Excel français avec point-virgule et virgule décimale.
Exemples de code
Copiez ces exemples dans votre propre projet. Chacun n'utilise que la bibliothèque standard du langage : il n'y a rien à installer.
const text = 'name,city\nAnn,Utrecht\nBob,"Den Haag, NL"\n'
const trimmed = text.trimEnd()
const records = [[]]
for (const match of trimmed.matchAll(/("(?:[^"]|"")*"|[^,\n]*)(,|\n|$)/gu)) {
if (match.index === trimmed.length) break
const [, field, end] = match
records.at(-1).push(field.startsWith('"') ? field.slice(1, -1).replaceAll('""', '"') : field)
if (end === '\n') records.push([])
}
const [header, ...rows] = records
const objects = rows.map((row) => Object.fromEntries(header.map((name, i) => [name, row[i]])))
console.log(JSON.stringify(objects))Ce qu’il fait
Convertit du CSV en tableau JSON et du JSON en CSV. Il lit le CSV selon la RFC 4180 : champs entre guillemets, guillemets doublés et retours à la ligne dans un champ.
Comment l’utiliser
- Collez du CSV ou du JSON, ou déposez un fichier.
- Choisissez CSV vers JSON ou JSON vers CSV. Laissez séparateur et décimales sur Détecter, ou réglez-les vous-même.
- Copiez ou téléchargez le résultat, ou utilisez Utiliser la sortie comme entrée pour en faire la prochaine entrée.
Exemples
Le CSV nom;prix / fromage;12,50 devient [{"nom": "fromage", "prix": 12.5}], et avec Ligne d’en-tête désactivée, [["nom", "prix"], ["fromage", 12.5]].
Bon à savoir
- Avec la ligne d’en-tête, chaque ligne devient un objet dont les clés sont les noms de colonnes ; une ligne au nombre de champs différent est signalée par son numéro.
- Le séparateur est détecté dans les premières lignes : virgule, point-virgule, tabulation ou barre verticale. Excel en français écrit des points-virgules et des virgules décimales, que Détecter lit comme 12.5.
- Une valeur ne devient un nombre que si elle se relit à l’identique :
007,1.50et les très longs nombres restent du texte. Désactivez la lecture des nombres pour tout garder en texte. - JSON vers CSV demande un tableau d’objets (les colonnes sont l’union des clés) ou un tableau de tableaux. Les valeurs imbriquées sont écrites en texte JSON.
Comment un fichier CSV est-il lu ?
Selon la RFC 4180 : les champs sont séparés par un séparateur, un champ entre guillemets peut contenir ce séparateur et des retours à la ligne, et un guillemet à l’intérieur s’écrit deux fois. Le séparateur est détecté dans les premières lignes : virgule, point-virgule, tabulation ou barre verticale.
Questions fréquentes
Pourquoi mes nombres deviennent-ils du texte, ou l’inverse ?
Une valeur ne devient un nombre que si elle se relit à l’identique : 007, 1.50 et les très longs nombres restent du texte. Désactivez « Lire les nombres et true/false » pour tout garder en texte.
Qu’est-ce que le format Excel français ?
Excel en France écrit des points-virgules entre les champs et une virgule comme séparateur décimal. Avec séparateur ou décimales sur « Détecter », 12,50 est lu comme 12.5, et JSON vers CSV écrit un fichier à point-virgule si vous choisissez la virgule décimale.
Mes données sont-elles envoyées quelque part ?
Non. La conversion se fait dans votre navigateur. Ce que vous collez n’est jamais envoyé à nos serveurs.