Aller directement à l’outil
ViewCSV
Aucun envoi de fichier

Convertir un CSV en JSON

orders.csv· DONNÉES D’EXEMPLE15 lignes · 8 colonnes
Types de valeurs
La détection se fait colonne par colonne, et seulement si toutes les valeurs s’y prêtent : les identifiants avec des zéros en tête et les entiers au-delà de 9 007 199 254 740 991 restent du texte.
Les colonnes user.name et user.email deviennent un seul objet « user » contenant « name » et « email ».
[
  {
    "order_id": "001041",
    "customer": "Emma Moreau",
    "city": "Montréal",
    "product": "Chair, ergonomic",
    "quantity": "5",
    "unit_price": "111.68",
    "order_date": "2026-01-10",
    "status": "pending"
  },
  {
    "order_id": "001042",
    "customer": "Ambre Laurent",
    "city": "Bordeaux",
    "product": "Notebook A5",
    "quantity": "9",
    "unit_price": "176.23",
    "order_date": "2026-02-26",
    "status": "pending"
  },
  {
    "order_id": "001043",
    "customer": "Gabriel Durand",
    "city": "Toulouse",
    "product": "Notebook A5",
    "quantity": "4",
    "unit_price": "199.26",
    "order_date": "2026-03-01",
    "status": "paid"
  },
  {
    "order_id": "001044",
    "customer": "Jules Thomas",
    "city": "Bordeaux",
    "product": "Monitor 27\"",
    "quantity": "2",
    "unit_price": "143.23",
    "order_date": "2026-04-25",
    "status": "paid"
  },
  {
    "order_id": "001045",
    "customer": "Louise Martin",
    "city": "Montréal",
    "product": "Notebook A5",
    "quantity": "1",
    "unit_price": "",
    "order_date": "2026-05-25",
    "status": "refunded"
  },
  {
    "order_id": "001046",
    "customer": "Jade Martin",
    "city": "Montréal",
    "product": "Monitor 27\"",
    "quantity": "4",
    "unit_price": "179.75",
    "order_date": "2026-06-03",
    "status": "shipped"
  },
  {
    "order_id": "001047",
    "customer": " Ambre Petit ",
    "city": "Paris",
    "product": "Chair, ergonomic",
    "quantity": "1",
    "unit_price": "186.03",
    "order_date": "2026-07-08",
    "status": "refunded"
  },
  {
    "order_id": "001048",
    "customer": "Emma Bernard",
    "city": "Toulouse",
    "product": "Chair, ergonomic",
    "quantity": "2",
    "unit_price": "121.16",
    "order_date": "2026-08-14",
    "status": "refunded"
  },
  {
    "order_id": "001049",
    "customer": "Gabriel Bernard",
    "city": "Lyon",
    "product": "Desk lamp",
    "quantity": "4",
    "unit_price": "16.49",
    "order_date": "2026-09-06",
    "status": "pending"
  },
  {
    "order_id": "001050",
    "customer": "Emma Leroy",
    "city": "Nantes",
    "product": "Chair, ergonomic",
    "quantity": "1",
    "unit_price": "209.76",
    "order_date": "2026-01-24",
    "status": "refunded"
  },
  {
    "order_id": "001051",
    "customer": "Arthur Moreau",
    "city": "Montréal",
    "product": "USB-C cable",
    "quantity": "5",
    "unit_price": "99.14",
    "order_date": "2026-02-06",
    "status": "refunded"
  },
  {
    "order_id": "001052",
    "customer": "Gabriel Dubois",
    "city": "Toulouse",
    "product": "Monitor 27\"",
    "quantity": "2",
    "unit_price": "23.64",
    "order_date": "2026-03-22",
    "status": "refunded"
  },
  {
    "order_id": "001053",
    "customer": "Ambre Leroy",
    "city": "Toulouse",
    "product": "Desk lamp",
    "quantity": "6",
    "unit_price": "55.90",
    "order_date": "2026-04-15",
    "status": "shipped"
  },
  {
    "order_id": "001054",
    "customer": "Léo Laurent",
    "city": "Lyon",
    "product": "USB-C cable",
    "quantity": "4",
    "unit_price": "98.00",
    "order_date": "2026-05-13",
    "status": "shipped"
  },
  {
    "order_id": "001043",
    "customer": "Gabriel Durand",
    "city": "Toulouse",
    "product": "Notebook A5",
    "quantity": "4",
    "unit_price": "199.26",
    "order_date": "2026-03-01",
    "status": "paid"
  }
]

15 lignes · 1 fichier

Ouvrez ou collez un fichier CSV : le JSON s’affiche à côté des options et suit chacun de vos réglages. Par défaut, chaque ligne devient un objet dont les clés sont les noms de colonnes ; choisissez un tableau de tableaux, un objet de tableaux par colonne ou JSON Lines si le code qui reçoit les données attend cette forme. Chaque valeur reste par défaut une chaîne de caractères : 00731 et les identifiants à 20 chiffres ressortent exactement comme ils étaient. N’activez la détection des nombres que si une colonne doit devenir des nombres JSON et des true/false. Pour un fichier de configuration, CSV en YAML écrit les mêmes lignes en YAML. La conversion a lieu dans votre navigateur, sans jamais envoyer le fichier.

Convertir un CSV en JSON, étape par étape

  1. Ouvrez un fichier .csv, .tsv ou .txt, déposez-le sur l’outil ou collez des lignes. Le séparateur et le BOM UTF-8 ou UTF-16 sont détectés ; pour imposer un autre séparateur ou un encodage ancien comme Windows-1252 ou Shift_JIS, passez par Paramètres d’importation.
  2. Choisissez la Structure JSON. L’aperçu montre les 200 premières lignes du résultat exact que contiendra le téléchargement.
  3. Réglez les Types de valeurs, les Cellules vides, l’imbrication et l’indentation, puis choisissez Télécharger en JSON ou Copier.

Pour convertir de nombreux fichiers avec les mêmes réglages, choisissez Lot : convertir plusieurs fichiers et sélectionnez-les ensemble : chaque fichier est converti à son tour et les résultats sont téléchargés dans un seul ZIP.

Options de sortie JSON : objets, tableaux ou JSON Lines

Tableau d’objetsUn objet par ligne, avec les en-têtes pour clés : [{"sku": "00731", …}]. C’est la structure qu’attendent la plupart des API et du code JavaScript.
Tableau de tableauxLa ligne d’en-têtes d’abord, puis chaque ligne sous forme de liste. Le résultat le plus compact ; l’ordre des colonnes est explicitement conservé.
Objet de tableaux par colonne{"sku": ["00731", "00732"], …} — pratique pour les bibliothèques de graphiques et les outils de type data frame.
JSON LinesUn objet JSON par ligne (JSON Lines), sans tableau englobant. Convient aux chaînes de traitement de journaux, aux chargements BigQuery et au traitement ligne par ligne.
Tout garder en texteChaque cellule devient une chaîne JSON, exactement telle qu’elle est écrite dans le fichier. C’est le réglage par défaut.
Détecter les nombres et true/falseUne colonne ne devient des nombres JSON que si toutes ses valeurs non vides sont des nombres simples qui supportent la conversion : pas de zéro initial, 15 chiffres significatifs au plus, pas de virgule décimale. Les colonnes true/false deviennent des booléens. Les dates restent des chaînes.
Cellules videsÉcrire "", null, ou omettre la clé dans l’objet concerné.
Imbriquer les noms de colonnes à pointuser.name et user.email deviennent {"user": {"name": …, "email": …}}. Si un nom est à la fois une valeur et un parent (user et user.name), ces colonnes restent à plat et l’outil vous le signale.

En-têtes, valeurs entre guillemets et identifiants dans le JSON

  • Les virgules entre guillemets, les guillemets ("") et les sauts de ligne à l’intérieur d’une valeur sont lus selon la RFC 4180 et écrits avec les échappements JSON habituels (\n, \").
  • Les noms d’en-têtes sont repris exactement tels qu’ils sont écrits, espaces et écritures non latines compris. Un en-tête vide devient Column 3 et un en-tête répété name (2) : aucune valeur n’est écrasée.
  • Les en-têtes comme __proto__ ou constructor sont écrits comme des clés ordinaires.
  • Une ligne qui a plus de valeurs que l’en-tête reçoit des clés supplémentaires nommées Column 4, Column 5… ; une ligne plus courte reçoit des valeurs vides. Rien n’est perdu.
  • Le résultat typé ne transforme jamais 0012 en 12, ni un numéro de commande à 19 chiffres en nombre à virgule flottante arrondi : une telle colonne reste du texte.

Problèmes fréquents de conversion CSV en JSON

  • Tout se retrouve dans une seule clé. Le séparateur a été mal deviné ; choisissez Virgule, Point-virgule, Tabulation ou Barre verticale dans les paramètres d’importation et rouvrez le fichier.
  • Les lettres accentuées s’affichent en é. Le fichier n’est pas en UTF-8. Choisissez son encodage (souvent Windows-1252 pour les exports d’anciennes versions d’Excel) dans les paramètres d’importation.
  • Une colonne de nombres est restée en texte. Au moins une valeur n’est pas un nombre simple — par exemple 1,5, 12 kg ou une valeur avec un zéro initial. Recherchez-la dans la colonne avec le lecteur CSV.
  • L’erreur de guillemets cite un enregistrement. Un guillemet ouvert dans cet enregistrement n’est jamais refermé. Corrigez-le dans l’éditeur CSV ou vérifiez l’export du logiciel d’origine.

Limites et confidentialité

Les fichiers jusqu’à 25 Mo, 100 000 lignes ou 2 millions de cellules s’ouvrent avec un aperçu en direct. Les fichiers plus gros sont convertis en flux : le fichier est lu deux fois par morceaux (une fois pour connaître les colonnes et les types, une fois pour écrire), l’aperçu est remplacé par un avertissement, et le téléchargement contient toutes les lignes. Un fichier produit est plafonné à 4 Go.

La conversion s’exécute dans un worker en arrière-plan, dans cet onglet : la page reste réactive et Annuler l’interrompt. Le CSV n’est jamais envoyé sur un serveur.

Exemple : une liste de produits en objets JSON

Une liste de produits avec une référence SKU à zéro initial et une virgule entre guillemets, convertie avec les réglages par défaut (tout en texte, tableau d’objets, indentation de 2 espaces). Avec Détecter les nombres et true/false, price devient 34.9 et in_stock devient true, tandis que sku reste "00731".

CSV
sku,name,price,in_stock
00731,"Desk lamp, brass",34.90,true
00732,Cable tidy,4.50,false
JSON
[
  {
    "sku": "00731",
    "name": "Desk lamp, brass",
    "price": "34.90",
    "in_stock": "true"
  },
  {
    "sku": "00732",
    "name": "Cable tidy",
    "price": "4.50",
    "in_stock": "false"
  }
]

Questions fréquentes

Pourquoi les nombres sont-ils entre guillemets par défaut ?

Parce que le CSV n’a pas de types : 00731, 1.50 et 2024-03-01 ne sont que du texte. Les garder en chaînes garantit que le JSON dit exactement ce que disait le fichier. Activez la détection des nombres lorsque vous savez qu’une colonne contient des quantités.

Puis-je reconvertir du JSON en CSV ici ?

Pas encore. Cette page convertit uniquement du CSV et du TSV en JSON.

JSON Lines et NDJSON, est-ce la même chose ?

Oui, en pratique : les deux désignent une valeur JSON complète par ligne, séparée par des caractères de saut de ligne.

Normes et références