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
Documentation
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, valeurs séparées par des virgules) en format JSON (JavaScript Object Notation), ou inversement. Ce convertisseur s'exécute 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 de texte brut servant à stocker des tableaux, comme les feuilles de calcul exportées depuis Excel ou Google Sheets. Le JSON est un format de texte construit à partir de paires clé-valeur, très utilisé pour échanger des données entre applications web et API. Comme les deux formats organisent les données différemment, passer de l'un à l'autre demande un ensemble de règles définies, décrites ci-dessous.
Comment convertir du CSV en JSON
- Cliquez sur « Importer un fichier CSV » et choisissez un fichier
.csvsur l'appareil. - L'outil affiche un aperçu du contenu brut du fichier.
- Cliquez sur « Convertir en JSON ». L'outil lit la première ligne comme les en-têtes de colonnes et transforme chacune des autres lignes en un objet JSON.
- Le résultat apparaît dans l'aperçu de sortie, mis en forme avec une indentation.
- Cliquez sur « Télécharger le JSON » pour l'enregistrer dans un fichier
.json, ou sur « Copier le JSON » pour copier le texte.
Comment convertir du JSON en CSV
- 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"}]. - L'outil affiche un aperçu du texte JSON brut.
- Cliquez sur « Convertir en CSV ». L'outil recueille toutes les clés utilisées dans l'ensemble des objets et transforme chacune en une colonne.
- Le résultat apparaît dans l'aperçu de sortie sous forme de texte CSV.
- Cliquez sur « Télécharger le CSV » pour l'enregistrer dans un fichier
.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 tout de même ralentir l'onglet du navigateur, puisque le fichier entier est conservé en mémoire pendant la conversion.
Règles de conversion du CSV vers le JSON
Le convertisseur lit la première ligne du fichier comme les noms de colonnes. Chaque ligne suivante devient un objet JSON, avec les noms de colonnes pour clés. Une ligne comportant plus de valeurs que d'en-têtes reçoit des clés supplémentaires nommées d'après leur position absolue dans la ligne : avec 3 en-têtes, une quatrième valeur a pour clé field_4, une cinquième field_5, et ainsi de suite, de sorte qu'aucune donnée n'est perdue. Une ligne comportant 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 du CSV décrites dans la RFC 4180, un document qui consigne le format que la plupart des programmes utilisent. Une virgule à l'intérieur d'un champ est considérée comme une simple partie de la valeur, et non comme une séparation de colonnes, seulement si le champ est entouré de guillemets doubles, par exemple "Smith, John". Un saut de ligne entre guillemets est conservé comme partie de la valeur et non traité comme une nouvelle ligne. Deux guillemets doubles à l'intérieur d'un champ entre guillemets représentent un seul guillemet littéral.
Seules les virgules sont reconnues comme séparateur de colonnes ; l'outil ne détecte ni ne prend en charge les points-virgules, les tabulations ou d'autres délimiteurs.
Chaque valeur est vérifiée puis convertie en un type :
- Une valeur écrite comme un simple nombre, par exemple
42ou-3.5, devient un nombre JSON. - Le texte
trueoufalse(quelle que soit la casse) devient un booléen JSON. - Tout le reste demeure une chaîne JSON, y compris les cellules vides, qui deviennent des chaînes vides.
- Un nombre commençant par un zéro, comme
00512, reste une chaîne, car le zéro initial a souvent un sens, comme dans un code postal ou un numéro d'identification. - Un nombre qui changerait s'il était stocké comme nombre JavaScript reste une chaîne, afin qu'aucun chiffre ne soit perdu. JavaScript stocke les nombres entiers de façon exacte seulement jusqu'à 9,007,199,254,740,991 ;
12345678901234567890reste donc du texte. Un grand nombre qui se trouve être stocké exactement, comme9007199254740992, devient quand même un nombre JSON. - Une valeur que le fichier a déjà placée entre guillemets est toujours conservée comme chaîne, même si elle ressemble à un nombre, car les guillemets sont interprétés comme l'indication de l'auteur que la valeur est du texte.
Les lignes vides du fichier sont ignorées et ne produisent pas d'objets vides.
Règles de conversion du JSON vers le CSV
Le convertisseur examine chaque objet du tableau et recueille l'ensemble complet des clés utilisées dans tous les objets. Ces clés deviennent les en-têtes de colonnes du CSV, dans l'ordre de leur première apparition. Si un objet n'a pas une clé qu'un autre objet possède, sa cellule reste vide au lieu de provoquer une erreur.
La conversion du JSON en CSV n'aplatit pas les objets imbriqués en colonnes distinctes. Une valeur qui est elle-même un objet est convertie en texte brut et apparaît sous la forme du texte littéral [object Object], ce qui fait perdre la structure d'origine. Une valeur qui est un tableau est convertie en une liste de ses éléments séparés par des virgules, sous forme de texte brut. Pour éviter de perdre des données, aplatissez manuellement tout JSON imbriqué avant la conversion, de sorte que chaque valeur soit une chaîne, un nombre ou un booléen simple.
Une valeur de cellule qui contient 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 du CSV ci-dessus.
Le JSON en entrée doit être un tableau d'objets. S'il ne s'agit pas d'un tableau, ou si le tableau est vide, l'outil affiche une erreur au lieu de deviner une conversion.
Exemple
Fichier CSV de départ :
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Sa conversion en JSON donne :
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]
13Notez que "Bo, Jr." a conservé sa virgule parce que le champ était entre guillemets dans le fichier source, et que Age et Member sont devenus un nombre et un booléen.
La conversion de ce même JSON en CSV, avec une ligne ajoutée où Age est absent, donne :
1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5La valeur Age manquante devient une cellule vide, et la virgule dans "Bo, Jr." fait que le champ est de nouveau entouré de guillemets en sortie.
Utilisations courantes
- Analyse de données : transformer un export CSV issu d'un tableur ou d'un outil d'analyse en JSON pour le traiter avec JavaScript, puis reconvertir les résultats en CSV pour un rapport.
- Test d'API : un développeur qui crée une API acceptant des fichiers CSV peut convertir des fichiers d'exemple en JSON pour vérifier qu'un analyseur produit les objets attendus.
- Migration de données : transférer des enregistrements d'un système qui exporte du CSV vers un système qui n'accepte que du JSON, ou l'inverse.
- Inspection rapide : transformer un fichier JSON en un CSV semblable à un tableau pour le lire plus facilement, ou l'inverse.
Des bibliothèques de programmation offrent la même conversion pour des tâches plus volumineuses ou répétées, comme les modules csv et json de Python, ou pandas. Des outils en ligne de commande comme csvkit et jq gèrent la conversion et le filtrage depuis un terminal. Ces options conviennent au traitement par lots ; cet outil de navigateur convient à un fichier ponctuel, sans rien installer.
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 délimiteurs 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 délimiteur doit d'abord être converti en format à virgules, par exemple en remplaçant le délimiteur dans un éditeur de texte.
Pourquoi un nombre comme 00512 est-il resté une chaîne de texte dans la sortie JSON ?
Les zéros initiaux ont généralement un sens, comme dans un code postal ; le convertisseur conserve donc cette valeur comme chaîne au lieu de la transformer en nombre 512, ce qui ferait perdre le zéro.
Que se passe-t-il si je convertis un JSON contenant des objets imbriqués ?
Chaque objet imbriqué devient le texte [object Object] dans sa cellule CSV, et la structure d'origine est perdue. Aplatissez les données imbriquées en champs simples avant la conversion.
Et si mon JSON n'est pas un tableau d'objets ?
L'outil affiche une erreur. L'entrée doit être un tableau JSON, et chaque élément doit être 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. La RFC 4180 rend la ligne d'en-têtes facultative, mais ce convertisseur traite toujours la première ligne comme les noms de colonnes. Dans un fichier sans ligne d'en-têtes, la première ligne de données sera interprétée à tort comme des en-têtes.
Références
- Internet Engineering Task Force. RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files. RFC 4180 : les champs contenant des virgules, des sauts de ligne ou des guillemets sont entourés de guillemets doubles ; un guillemet à l'intérieur est échappé en le doublant ; la ligne d'en-têtes est facultative.
- Mozilla Developer Network. Number.MAX_SAFE_INTEGER. Référence de Number.MAX_SAFE_INTEGER : les nombres JavaScript ne représentent les entiers de façon exacte que jusqu'à 9,007,199,254,740,991.