Convertir CSV en JSON
Ce convertisseur transforme un fichier CSV en JSON avec un objet par ligne, la ligne d'en-tête servant de clés ; les nombres, true et false sont typés, tandis que les codes postaux et autres valeurs à zéros initiaux restent du texte. La conversion est faite par votre navigateur : votre CSV n'est jamais envoyé. Les dates restent du texte, car le JSON n'a pas de type date, et le résultat est un seul document JSON, pas du JSON Lines.
Un fichier ne s'est pas converti correctement ? Écrivez à [email protected], idéalement avec un petit fichier d'exemple, et ce sera corrigé.
L'essentiel
- Entrée : CSV (.csv). Sortie : JSON (.json).
- Vos fichiers ne sont pas envoyés : le traitement se fait dans votre navigateur, sur votre propre appareil.
- Taille : pas de limite fixe ; les très gros fichiers sont limités par la mémoire de votre appareil.
- Nécessite un navigateur récent (Chrome, Edge, Firefox ou Safari) sur ordinateur, tablette ou téléphone ; rien à installer.
- Gratuit, sans inscription.
Pourquoi convertir un CSV en JSON
Les applications web, les API, les jeux de données de test, les générateurs de sites statiques et les bases de données NoSQL attendent du JSON, alors que les données naissent souvent dans un tableur enregistré en CSV. Ce convertisseur transforme chaque ligne en objet JSON, avec la ligne d'en-tête comme clés. Il détecte le séparateur et l'encodage, y compris les fichiers à points-virgules et virgules décimales d'Excel en Europe, et affiche les premières lignes pour que vous vérifiiez les colonnes. Les nombres deviennent des nombres JSON, true et false des booléens et les cellules vides null, tandis que les valeurs avec des zéros initiaux, comme les codes postaux, restent du texte. Si vous préférez décider vous-même des types, gardez tout en texte. Les colonnes dont le nom contient des points, comme address.city, peuvent devenir des objets imbriqués, et vous pouvez choisir une liste de lignes plutôt que d'objets quand le résultat doit être le plus compact possible. Le résultat est du JSON en UTF-8, indenté pour rester facile à lire.
Comment convertir un CSV en JSON
- Déposez votre fichier CSV dans le cadre, ou cliquez pour le choisir.
- Vérifiez les colonnes dans l'aperçu et choisissez la présentation des valeurs et la structure du JSON.
- Cliquez sur « Convertir en JSON » et téléchargez le fichier .json.
Ce qui change lors de la conversion
La première ligne est l'en-tête
La première ligne donne les noms des clés. Les noms vides deviennent column_1, column_2 et ainsi de suite, et un nom répété reçoit le suffixe _2, si bien qu'aucune valeur n'est écrasée. Supprimez d'abord dans le tableur les lignes de titre placées au-dessus de l'en-tête.
Des nombres qui n'en sont pas
Les codes postaux comme 01500, les codes comme 007 et les nombres de plus de 15 chiffres restent du texte, car les transformer en nombres JSON ferait perdre des zéros ou des chiffres. Les nombres avec un séparateur de milliers, comme 1,250.00 ou 1.250,00, restent eux aussi du texte.
Les dates restent du texte
Le JSON n'a pas de type date : les dates sont donc écrites exactement comme dans le CSV, par exemple "2024-05-01". Si votre programme a besoin d'un format particulier, convertissez les dates dans le tableur avant d'enregistrer le CSV.
Clés imbriquées
Avec l'option d'imbrication, les colonnes address.city et address.zip deviennent un seul objet address. Si une colonne nommée address existe aussi, les colonnes pointées restent à plat, si bien qu'aucune valeur n'est perdue.
À propos des formats
CSV
Le CSV (comma-separated values, valeurs séparées par des virgules) est un tableau en texte brut : une ligne de texte par ligne du tableau, avec des cellules séparées par une virgule, un point-virgule ou une tabulation. Excel, Google Sheets, Numbers, toutes les bases de données et la plupart des langages de programmation le lisent et l'écrivent, ce qui en fait le moyen habituel de passer un tableau d'un programme à un autre.
- Il n'existe pas de norme pour le séparateur : Excel utilise une virgule ou un point-virgule selon les paramètres de langue.
- Chaque valeur est du texte ; c'est le programme qui le lit qui décide si 01500 est un nombre ou un code postal.
- Il n'y a ni feuilles, ni formules, ni couleurs, ni largeurs de colonnes, seulement les valeurs.
- L'encodage n'est pas enregistré dans le fichier ; l'UTF-8 est le choix sûr, et Excel a besoin d'un BOM pour le reconnaître.
JSON
Le JSON (JavaScript Object Notation) est le format texte qu'utilisent la plupart des API web, des applications et des fichiers de configuration pour leurs données. Les valeurs peuvent être imbriquées : un enregistrement peut contenir un autre enregistrement ou une liste, ce qu'un tableau plat ne permet pas.
- Les objets contiennent des valeurs nommées, les listes des valeurs ordonnées ; les deux peuvent être imbriqués à n'importe quelle profondeur.
- Les valeurs sont du texte, des nombres, true/false ou null, si bien qu'un code postal écrit "01500" reste du texte.
- Le JSON Lines (.jsonl, .ndjson) place un objet JSON sur chaque ligne, une pratique courante dans les journaux et les exports de données.
- Le texte est toujours en Unicode, normalement en UTF-8.
Questions fréquentes
Mon fichier CSV est-il envoyé ?
Non. Votre navigateur lit le fichier et écrit le JSON sur votre propre appareil ; rien n'est envoyé à un serveur.
Quels séparateurs fonctionnent ?
La virgule, le point-virgule, la tabulation et la barre verticale sont détectés automatiquement, tout comme la ligne « sep= » qu'Excel ajoute parfois. Si l'aperçu montre toutes les valeurs dans une seule colonne, choisissez vous-même le séparateur.
Puis-je obtenir du JSON Lines à la place ?
Pas directement. L'outil écrit un seul document JSON. La plupart des programmes qui lisent du JSON Lines lisent aussi une liste JSON, et c'est une liste JSON qu'attendent la plupart des API et des outils.
Et les très gros fichiers ?
Les fichiers jusqu'à 200 Mo fonctionnent. Le JSON est en général deux à trois fois plus gros que le CSV, car chaque valeur porte sa clé : la structure en liste de lignes donne un fichier plus petit.