Aller au contenu
Case Converter Online
fr

Convertir un CSV en JSON

Collez du CSV ou ouvrez un fichier .csv et obtenez un tableau JSON pendant la frappe. Le séparateur est détecté pour vous, et vous pouvez aussi convertir du JSON en CSV.

Collez du CSV ou appuyez sur Exemple. Vos données restent dans votre navigateur.

Ce que fait ce convertisseur

Le CSV est le format d’export courant des tableurs et des bases de données : un enregistrement par ligne, des valeurs séparées par des virgules (ou des points-virgules). Le JSON est ce qu’attendent la plupart des API, du code JavaScript et des bases NoSQL. Cet outil pour convertir un CSV en JSON transforme l’un en l’autre.

Avec une ligne d’en-tête, chaque ligne du CSV devient un objet JSON, et les noms de colonnes deviennent les clés. Sans ligne d’en-tête, chaque ligne devient un tableau de valeurs. L’analyse est faite par Papa Parse, une bibliothèque CSV éprouvée qui gère les champs entre guillemets, les virgules à l’intérieur des guillemets et les sauts de ligne à l’intérieur des cellules.

Mode d’emploi

  1. Choisissez CSV vers JSON (ou JSON vers CSV pour l’autre sens).
  2. Collez vos données, appuyez sur Ouvrir un fichier pour charger un fichier .csv ou .tsv, ou appuyez sur Exemple.
  3. Réglez les options. Le JSON se met à jour à chaque changement :
    • Séparateur : Détecter, Virgule, Point-virgule, Tabulation ou Barre verticale.
    • Sortie : 2 espaces, 4 espaces ou Minifié.
    • La première ligne est l’en-tête : objets avec clés nommées si activé, tableaux sinon.
    • Convertir les nombres et true/false : transforme 12 en nombre et true en booléen. Désactivé, chaque valeur reste une chaîne.
    • Ignorer les lignes vides : ignore les lignes vides que les tableurs ajoutent souvent à la fin.
  4. Appuyez sur Copier ou Télécharger pour enregistrer le résultat en fichier .json.

La ligne d’état indique combien de lignes et de colonnes ont été lues et quel séparateur a été détecté.

Exemple

Ce CSV, avec un nom entre guillemets qui contient une virgule :

id,name,email,city,signup_date,active,orders
1,Ada Lovelace,[email protected],London,2024-03-01,true,12
2,"Hopper, Grace",[email protected],New York,2024-04-17,false,3

devient :

[
  {
    "id": 1,
    "name": "Ada Lovelace",
    "email": "[email protected]",
    "city": "London",
    "signup_date": "2024-03-01",
    "active": true,
    "orders": 12
  },
  {
    "id": 2,
    "name": "Hopper, Grace",
    "email": "[email protected]",
    "city": "New York",
    "signup_date": "2024-04-17",
    "active": false,
    "orders": 3
  }
]

Les guillemets autour de « Hopper, Grace » ont protégé la virgule du nom. Les identifiants et les nombres de commandes sont devenus des nombres, true et false des booléens, et les dates sont restées des chaînes puisque le JSON n’a pas de type date.

Un export Excel français

Un tableur réglé en français exporte en général le CSV avec des points-virgules, des décimales à virgule et, selon les cas, des booléens écrits VRAI et FAUX. Voici ce que l’outil renvoie réellement pour un tel fichier :

nom;ville;code_postal;prix;actif
Dupont;Besançon;25000;2,50;VRAI
Martin;Ajaccio;20000;12;true
[
  {
    "nom": "Dupont",
    "ville": "Besançon",
    "code_postal": 25000,
    "prix": "2,50",
    "actif": "VRAI"
  },
  {
    "nom": "Martin",
    "ville": "Ajaccio",
    "code_postal": 20000,
    "prix": 12,
    "actif": true
  }
]

Le point-virgule est détecté tout seul et les accents sont conservés. 2,50 reste une chaîne, car ce n’est pas un nombre JSON valide. VRAI reste aussi une chaîne : seuls true et false (et leurs variantes en majuscules anglaises) sont convertis en booléens. Si vous avez besoin de vrais nombres, remplacez les virgules décimales par des points avant la conversion, par exemple avec l’outil rechercher et remplacer.

Les valeurs qui restent du texte

Transformer en nombre tout ce qui y ressemble peut abîmer des données. Ce convertisseur garde une valeur en texte quand la convertir la modifierait :

[
  {
    "name": "Ada",
    "zip": "02134",
    "phone": "0207 946 0000"
  }
]

Le code postal garde son zéro de tête. La même règle s’applique aux identifiants qui commencent par zéro et aux entiers plus longs que ce que JavaScript peut stocker exactement. Un prix écrit avec une virgule décimale, comme 2,50 dans un fichier à points-virgules, reste aussi une chaîne, car ce n’est pas un nombre JSON valide. Les numéros de téléphone français comme 06 12 34 56 78 restent également du texte.

JSON vers CSV

Appuyez sur JSON vers CSV et collez un tableau d’objets. Chaque clé présente dans au moins un objet devient une colonne, dans l’ordre de première apparition. Avec Aplatir les objets imbriqués activé, les données imbriquées reçoivent des noms de colonnes pointés :

id,name,address.city,address.zip,tags
1,Ada,London,NW1,"[""admin"",""dev""]"
2,Grace,New York,,

Grace n’avait pas de code postal, donc cette cellule est vide. Le tableau de tags a été écrit sous forme de texte JSON, avec ses guillemets doublés comme l’exige le format CSV. Un tableau de tableaux est écrit ligne par ligne, sans en-tête. Appuyez sur Télécharger pour l’enregistrer en fichier .csv qu’Excel, Numbers et Google Sheets savent ouvrir. Pour un Excel en français, choisissez le séparateur Point-virgule afin que les colonnes s’ouvrent directement au bon endroit.

Quand les lignes ne correspondent pas

Si une ligne a plus ou moins de valeurs que l’en-tête, le convertisseur produit quand même le JSON et signale le problème par numéro de ligne du tableur, par exemple « Ligne 3 : Too many fields: expected 2 fields but parsed 3 » (trop de champs, 2 attendus, 3 trouvés ; le texte du message vient de la bibliothèque Papa Parse et reste en anglais). La ligne 1 est l’en-tête. Un guillemet ouvert et jamais fermé est signalé de la même façon. Corrigez la ligne dans votre fichier et collez-le de nouveau.

Conseils

  • Vérifiez le JSON avec le formateur JSON, qui peut aussi trier les clés et minifier.
  • Besoin de YAML pour un fichier de configuration ? Convertissez ici en JSON, puis utilisez le convertisseur JSON en YAML.
  • Pour afficher les données dans un README, le générateur de tableau Markdown accepte le même CSV ou les mêmes cellules de tableur.
  • Désactivez Convertir les nombres et true/false quand chaque valeur doit rester une chaîne, par exemple avant un import dans un système qui fait son propre typage.

Autres façons de convertir un CSV en JSON

  • Python : le DictReader du module csv intégré lit les lignes comme des dictionnaires, et json.dump les écrit.
  • csvkit : la commande csvjson convertit un fichier CSV en JSON dans un terminal.
  • Excel et Google Sheets n’ont pas d’export JSON. Enregistrez d’abord en CSV, puis convertissez ici.
  • jq peut faire l’inverse, de JSON vers CSV, avec son filtre @csv.

Tout se passe dans votre navigateur. Les gros fichiers prennent un peu plus de temps, et rien n’est envoyé.

CSV en JSON : questions fréquentes

Pourquoi mon code postal garde-t-il des guillemets dans le JSON ?

C'est voulu. Une valeur comme 02134 (ou 01000 pour un code postal de l'Ain) perdrait son zéro de tête en devenant un nombre, donc les valeurs qui commencent par zéro restent du texte. Il en va de même pour les entiers trop grands pour être stockés exactement, comme les longs identifiants. Les nombres ordinaires comme 12 ou 3.5 deviennent des nombres JSON.

Mon fichier utilise des points-virgules. Est-ce que ça marche ?

Oui. Avec Séparateur réglé sur Détecter, le convertisseur teste les virgules, les points-virgules, les tabulations et les barres verticales et choisit celui qui convient. Les tableurs réglés en français et dans beaucoup de pays européens enregistrent le CSV avec des points-virgules, et la ligne d'état indique le séparateur trouvé.

Comment les objets imbriqués sont-ils gérés de JSON vers CSV ?

Avec Aplatir les objets imbriqués activé, un objet imbriqué devient plusieurs colonnes aux noms pointés comme address.city. Les tableaux sont écrits sous forme de texte JSON dans une seule cellule. Chaque clé présente dans au moins un objet devient une colonne.

Mes données sont-elles envoyées en ligne ?

Non. Le fichier est lu et converti dans votre navigateur avec Papa Parse. Rien n'est envoyé à un serveur, c'est donc sûr pour des listes de clients et d'autres données privées.

Plus d'outils code et données

Voir tous les outils