Passer au contenu

Convertisseur CSV en JSON - Outil de conversion de fichiers gratuit en ligne

Convertissez CSV en JSON et JSON en CSV instantanément dans votre navigateur. Conversion de données sécurisée, rapide avec aperçu et téléchargement. Aucun téléchargement requis.

Convertisseur de fichiers CSV/JSON

Convertissez facilement entre les formats CSV et JSON. Téléchargez votre fichier, prévisualisez les données et téléchargez le résultat converti.

Convertisseur CSV vers JSON

Convertisseur JSON vers CSV

Calculateur de chargement...
📚

Documentation

Convertisseur CSV vers JSON – Outil de conversion de fichiers en ligne

Qu'est-ce qu'un convertisseur CSV vers JSON ?

Un convertisseur CSV vers JSON est un outil qui transforme des données du format CSV (Comma-Separated Values, ou valeurs séparées par des virgules) en format JSON (JavaScript Object Notation), ou l'inverse. Ce convertisseur fonctionne entièrement dans le navigateur web. Il n'envoie jamais le fichier importé à un serveur : les données restent donc sur l'appareil de l'utilisateur.

Le CSV est un format en texte brut utilisé pour stocker des tableaux, comme ceux exportés depuis Excel ou Google Sheets. Le JSON est un format texte composé de paires clé-valeur, largement utilisé pour transférer des données entre des applications web et des API. Comme les deux formats organisent les données différemment, leur conversion nécessite un ensemble défini de règles, décrit ci-dessous.

Convertir un fichier CSV en JSON

  1. Cliquez sur « Importer un fichier CSV » et choisissez un fichier .csv sur l'appareil.
  2. L'outil affiche un aperçu du contenu brut du fichier.
  3. Cliquez sur « Convertir en JSON ». L'outil lit la première ligne comme en-têtes de colonnes et transforme chaque ligne suivante en un objet JSON.
  4. Le résultat apparaît dans l'aperçu de sortie, avec une indentation.
  5. Cliquez sur « Télécharger le fichier JSON » pour l'enregistrer au format .json, ou sur « Copier le JSON » pour copier le texte.

Convertir un fichier JSON en CSV

  1. Cliquez sur « Importer un fichier JSON » et choisissez un fichier .json. Le fichier doit contenir un tableau JSON d'objets, par exemple [{"Name":"Ann"},{"Name":"Bo"}].
  2. L'outil affiche un aperçu du texte JSON brut.
  3. Cliquez sur « Convertir en CSV ». L'outil rassemble toutes les clés utilisées dans l'ensemble des objets et transforme chacune d'elles en colonne.
  4. Le résultat apparaît dans l'aperçu de sortie sous forme de texte CSV.
  5. Cliquez sur « Télécharger le fichier CSV » pour l'enregistrer au format .csv, ou sur « Copier le CSV » pour copier le texte.

Aucune limite d'importation n'est imposée par un serveur, car aucune donnée ne quitte le navigateur. Un fichier très volumineux peut toutefois ralentir l'onglet du navigateur, puisque le fichier entier est conservé en mémoire pendant la conversion.

Règles de conversion du CSV vers JSON

Le convertisseur lit la première ligne du fichier comme noms de colonnes. Chaque ligne suivante devient un objet JSON, dont les clés sont les noms de colonnes. Une ligne contenant plus de valeurs qu'il n'y a d'en-têtes reçoit des clés supplémentaires correspondant à leur position absolue dans la ligne. Ainsi, avec 3 en-têtes, une quatrième valeur reçoit la clé field_4, une cinquième la clé field_5, et ainsi de suite : aucune donnée n'est donc supprimée. Une ligne contenant moins de valeurs reçoit des chaînes vides pour les clés manquantes. Si deux en-têtes portent le même nom, le second est renommé avec un suffixe : a, a devient ainsi les clés a et a_2.

Le convertisseur suit les règles CSV définies dans la RFC 4180, la norme technique de ce format. Une virgule à l'intérieur d'un champ est considérée comme une valeur de ce champ, et non comme une séparation de colonnes, si le champ est entouré de guillemets doubles, par exemple "Smith, John". Un saut de ligne placé à l'intérieur de guillemets est conservé dans la valeur au lieu d'être traité comme une nouvelle ligne. Deux guillemets doubles à l'intérieur d'un champ entre guillemets représentent un seul caractère guillemet littéral.

Seules les virgules sont reconnues comme séparateurs de colonnes ; l'outil ne détecte ni ne prend en charge les points-virgules, les tabulations ou d'autres séparateurs.

Chaque valeur est vérifiée et convertie vers un type :

  • Une valeur écrite comme un nombre simple, telle que 42 ou -3.5, devient un nombre JSON.
  • Le texte true ou false (quelle que soit la casse) devient une valeur booléenne JSON.
  • Tout autre contenu reste une chaîne JSON, y compris les cellules vides, qui deviennent des chaînes vides.
  • Un nombre commençant par zéro, tel que 00512, reste une chaîne, car le zéro initial est souvent significatif, par exemple dans un code postal ou un identifiant.
  • Un nombre n'est accepté que si sa réécriture produit exactement le même texte. Les entiers longs supérieurs à 9 007 199 254 740 991, le plus grand nombre entier qu'un nombre JavaScript peut représenter exactement, échouent généralement à cette vérification et restent donc des chaînes, afin qu'aucun chiffre ne soit perdu.
  • Une valeur que le fichier avait déjà entourée de guillemets est toujours conservée comme chaîne, même si elle ressemble à un nombre, car les guillemets sont considérés comme l'indication de l'auteur qu'il s'agit d'un texte.

Les lignes vides du fichier sont ignorées et ne produisent pas d'objets vides.

Règles de conversion du JSON vers CSV

Le convertisseur examine chaque objet du tableau et rassemble l'ensemble des clés utilisées. Ces clés deviennent les en-têtes des colonnes CSV, dans l'ordre de leur première apparition. Si un objet ne possède pas une clé présente dans un autre objet, sa cellule reste vide au lieu de provoquer une erreur.

La conversion JSON vers CSV n'aplatit pas les objets imbriqués pour les répartir dans plusieurs colonnes. Une valeur qui est elle-même un objet ou un tableau est réécrite sous forme de texte JSON dans une seule cellule. Ainsi, {"b": 1} devient la cellule {"b":1} et [1, 2] devient la cellule [1,2]. Rien n'est perdu, mais la partie imbriquée reste dans une seule colonne au lieu d'être séparée. Les données JSON imbriquées doivent d'abord être aplaties manuellement si chaque élément doit occuper sa propre colonne.

Une valeur null, ainsi qu'une clé présente dans un objet mais absente d'un autre, produit une cellule vide.

Une valeur de cellule contenant une virgule, un guillemet ou un saut de ligne est entourée de guillemets doubles dans la sortie, et tout guillemet qu'elle contient est doublé, conformément à la règle d'échappement CSV décrite ci-dessus.

Le JSON d'entrée doit être un tableau, et chaque élément de ce tableau doit être un objet. La présence d'un nombre, d'une chaîne, de null ou d'un tableau imbriqué à la place d'un objet produit l'erreur « Le JSON doit être un tableau d'objets ». Un tableau totalement vide produit l'erreur « Le tableau JSON est vide. Ajoutez au moins un objet à convertir. » Un fichier importé sans aucun contenu produit l'erreur « Le fichier importé est vide. »

Exemple

Fichier CSV de départ :

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

Sa conversion en JSON produit :

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

"Bo, Jr." a conservé sa virgule, car le champ était entre guillemets dans le fichier source. Age et Member sont devenus respectivement un nombre et une valeur booléenne.

La reconversion de ce même JSON en CSV, avec une ligne supplémentaire où Age est manquant, produit :

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

La valeur Age manquante devient une cellule vide, et la virgule de "Bo, Jr." entraîne à nouveau l'utilisation de guillemets autour du champ lors de la conversion.

Utilisations courantes

  • Analyse de données : transformer en JSON l'export CSV d'un tableur ou d'un outil d'analyse afin de le traiter avec JavaScript, puis reconvertir les résultats en CSV pour un rapport.
  • Tests d'API : un développeur qui crée une API acceptant les importations CSV peut convertir des fichiers d'exemple en JSON afin de vérifier qu'un analyseur produit les objets attendus.
  • Migration de données : déplacer des enregistrements d'un système qui exporte au format CSV vers un système qui n'accepte que le JSON, ou l'inverse.
  • Inspection rapide : transformer un fichier JSON en CSV de type tableau pour le lire plus facilement, ou effectuer la conversion inverse.

Les bibliothèques de programmation proposent les mêmes conversions pour les traitements plus volumineux ou répétés, notamment les modules csv et json de Python, ainsi que pandas. Des outils en ligne de commande comme csvkit et jq permettent d'effectuer des conversions et des filtrages depuis un terminal. Ces solutions conviennent au traitement par lots ; l'outil du navigateur convient à la conversion ponctuelle d'un fichier, sans installation.

Foire aux questions

Le fichier importé est-il envoyé à un serveur ?
Non. La conversion s'exécute en JavaScript dans l'onglet du navigateur. Le fichier est lu depuis l'appareil local et n'est jamais transmis.

Le convertisseur prend-il en charge d'autres séparateurs que la virgule, comme le point-virgule ou la tabulation ?
Non. La version actuelle ne lit que les valeurs séparées par des virgules. Un fichier utilisant un autre séparateur doit d'abord être converti en format séparé par des virgules, par exemple en remplaçant le séparateur dans un éditeur de texte.

Pourquoi un nombre comme 00512 reste-t-il une chaîne de texte dans la sortie JSON ?
Les zéros initiaux sont généralement significatifs, comme dans un code postal. Le convertisseur conserve donc cette valeur comme chaîne au lieu de la transformer en nombre 512, ce qui supprimerait le zéro.

Que se passe-t-il si je convertis un JSON contenant des objets imbriqués ?
L'objet imbriqué est écrit comme texte JSON dans une seule cellule, par exemple {"b":1}. Les données sont conservées, mais elles ne sont pas réparties dans plusieurs colonnes. Les données imbriquées doivent d'abord être aplaties si chaque champ doit avoir sa propre colonne.

Que se passe-t-il si mon JSON n'est pas un tableau d'objets ?
L'outil affiche une erreur et ne convertit rien. L'entrée doit être un tableau JSON dont chaque élément est un objet, par exemple [{"a":1},{"a":2}].

La première ligne d'un fichier CSV doit-elle toujours être une ligne d'en-têtes ?
Oui. Le convertisseur traite toujours la première ligne comme les noms des colonnes. Dans un fichier sans ligne d'en-têtes, la première ligne de données serait interprétée à tort comme les en-têtes.

Références

  1. Shafranovich, Y. « Format commun et type MIME pour les fichiers de valeurs séparées par des virgules (CSV). » RFC 4180, IETF, octobre 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., éd. « Format d'échange de données JavaScript Object Notation (JSON). » RFC 8259, IETF, décembre 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. « Travailler avec JSON. » MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON