Convertisseur CSV ↔ JSON

Convertissez du CSV en JSON ou du JSON en CSV directement dans votre navigateur.

Le formulaire interactif est prêt lorsque JavaScript est activé.

Mode d’emploi

Collez un CSV et appuyez sur « CSV → JSON » pour obtenir un tableau d’objets, un par ligne, dont les clés viennent de la ligne d’en-tête. Collez un tableau JSON d’objets et appuyez sur « JSON → CSV » pour retrouver une table, avec un en-tête formé de toutes les clés qui apparaissent, dans l’ordre de leur première apparition. Le séparateur peut être une virgule, un point-virgule ou une tabulation, et il s’applique dans les deux sens. Les fichiers provenant de pays qui utilisent la virgule comme séparateur décimal sont souvent séparés par des points-virgules : choisissez « Point-virgule » pour ceux-ci, sinon chaque ligne est lue comme un seul champ ou coupée à ses virgules décimales.

Un champ qui contient le séparateur, un guillemet ou un saut de ligne doit être entouré de guillemets doubles, et un guillemet à l’intérieur s’écrit deux fois : "She said ""hi""" est lu comme She said "hi". Les lignes vides sont ignorées : l’en-tête est donc la première ligne qui a du contenu ; les cellules manquantes deviennent des chaînes vides et les cellules au-delà du dernier en-tête sont supprimées. Un nom d’en-tête vide devient column_ suivi de la position de la colonne, comme column_3, et un nom répété reçoit le premier suffixe libre (name, name_2) : aucune colonne n’en écrase donc une autre. Un guillemet jamais refermé est signalé comme CSV invalide.

Chaque valeur CSV devient une chaîne JSON, y compris les nombres et true ou false : le CSV n’a pas de types, donc le convertisseur ne devine pas. C’est ce qui préserve les zéros initiaux (007, codes postaux, numéros de téléphone) et les longs identifiants ; convertissez en nombres les champs qui doivent l’être dans votre propre code. Dans l’autre sens, les nombres et true ou false sont écrits tels quels, null devient une cellule vide, et un objet ou un tableau imbriqué est écrit sous forme de texte JSON dans sa cellule.

« JSON → CSV » accepte un tableau d’objets ou un objet seul, qui devient une ligne. Un tableau de valeurs simples donne une seule colonne nommée value. Les lignes sont séparées par des sauts de ligne, et une cellule n’est mise entre guillemets que si c’est nécessaire. Tout s’exécute dans votre navigateur ; rien n’est envoyé.

Exemple

L’en-tête devient le nom des propriétés JSON. Les deux lignes de données deviennent deux objets.

  • name,email / Ana,[email protected][{"name": "Ana", "email": "[email protected]"}]
  • id / 007"id": "007" : les zéros initiaux restent, car les valeurs sont conservées sous forme de texte.
  • "Lisbon, Portugal" dans un seul champReste une seule valeur ; sans les guillemets, elle serait coupée en deux colonnes.
  • name;price / Pão;1,20 avec « Point-virgule »[{"name": "Pão", "price": "1,20"}]. Si vous choisissez plutôt « Virgule », l’en-tête devient un seul champ, name;price, et la ligne est lue comme Pão;1 : le 20 tombe dans une cellule supplémentaire et est supprimé.
  • [{"a":1,"tags":["x","y"]}] → CSVa,tags puis 1,"[""x"",""y""]" : le tableau est écrit sous forme de texte JSON et mis entre guillemets, car il contient des guillemets et une virgule.

Questions fréquentes

Pourquoi mes identifiants ont-ils perdu leurs zéros initiaux ?

Pas dans ce convertisseur : il conserve chaque valeur CSV sous forme de texte, donc 007 reste 007. Les zéros se perdent généralement plus tôt, quand le fichier est ouvert puis enregistré dans un tableur qui lit 007 comme le nombre 7. Gardez les identifiants, les codes postaux et les numéros de téléphone sous forme de texte de bout en bout.

Pourquoi certains CSV utilisent-ils des points-virgules ?

Parce que dans une grande partie de l’Europe et de l’Amérique du Sud, la virgule est le séparateur décimal : elle ne peut donc pas aussi séparer les champs. Ces exports utilisent un point-virgule à la place — le même format avec un autre séparateur —, et c’est pourquoi un fichier qui s’ouvre proprement à un endroit apparaît sur une seule colonne ailleurs. Choisissez « Point-virgule » avant de le convertir.

Pourquoi les nombres sont-ils des chaînes dans le JSON ?

Parce que le CSV n’indique pas quelles valeurs sont des nombres. Lire 007, 1e3 ou un identifiant à 20 chiffres comme un nombre le modifierait : le convertisseur vous laisse donc cette décision.

Peut-il convertir du JSON imbriqué ?

En partie. Chaque objet devient une ligne et chaque clé de premier niveau une colonne ; les objets et les tableaux imbriqués sont écrits sous forme de texte JSON dans leur cellule plutôt que répartis sur des colonnes supplémentaires.

Que devient un guillemet à l’intérieur d’un champ ?

Il est doublé et le champ est entouré de guillemets, comme l’exige le CSV : She said "hi" devient "She said ""hi""".

Outils associés