Convertir JSON en CSV — Convertisseur en ligne
Convertir un tableau d’objets JSON en CSV (aplatissement, séparateurs, BOM pour Excel)
Traitement dans le navigateur · aucun envoi de fichier
Présentation
Les tableaux JSON sont partout dans le développement, mais les tableurs préfèrent le CSV. Cet outil convertit un JSON de la forme [{...}, {...}] en CSV avec une ligne d’en-tête. Le résultat se met à jour pendant que vous modifiez la saisie, et vous pouvez aussi le télécharger sous forme de fichier.
Mode d’emploi
- Collez un tableau d’objets dans le champ de saisie. Un objet seul donne un tableau d’une ligne.
- Choisissez un séparateur : virgule, point-virgule, tabulation ou barre verticale. Un Excel configuré en français attend généralement le point-virgule.
- Si vous comptez ouvrir le fichier dans Excel, laissez le BOM UTF-8 activé et cliquez sur Télécharger le CSV.
- Pour coller le résultat dans un autre programme, utilisez plutôt le bouton Copier.
Fonctionnement
-
Le format suit la RFC 4180. Une valeur qui contient le séparateur, un guillemet double ou un saut de ligne est entourée de guillemets doubles, et les guillemets internes sont doublés. Les lignes se terminent par CRLF.
-
La première ligne est l’en-tête. Les colonnes sont collectées sur toutes les lignes, dans l’ordre où chaque clé apparaît pour la première fois.
-
Les objets imbriqués sont aplatis en notation pointée (
a.b.c). Les tableaux et les objets vides vont dans une seule cellule sous forme de chaîne JSON, par exemple["a","b"]. Si une clé contient elle-même un point, elle ne peut plus être distinguée lors de la conversion inverse. -
nulldevient une cellule vide, les booléens s’écriventtrueoufalseet les nombres suivent la notation de JavaScript. Les entiers au-delà de 9007199254740991 sont arrondis dès la lecture du JSON ; un avertissement s’affiche alors. -
Les éléments du tableau qui ne sont pas des objets (nombres, chaînes, etc.) produisent une seule colonne nommée
value. -
Les fichiers sont en UTF-8, et le BOM n’est ajouté qu’au fichier téléchargé.
-
Limites de l’aller-retour :
nulldevient une cellule vide et ne se distingue donc plus d’une chaîne vide dans le CSV. Le CSV n’a pas non plus de types : une reconversion avec conversion des types transforme les chaînes numériques comme"123"en nombre123. -
Injection de formules Excel : une cellule qui commence par
=,+,-ou@peut être exécutée comme une formule à l’ouverture du fichier dans Excel. Pour des données de provenance douteuse, activez l’option qui place une apostrophe ’ devant ces valeurs : la cellule s’affiche alors comme du texte (à l’ouverture d’un CSV, l’apostrophe reste visible dans la cellule), tandis que les nombres négatifs simples comme-12.5restent des nombres. L’option est désactivée par défaut, vos valeurs ne sont donc pas modifiées sans votre accord.
Exemples
Saisie :
[{"name":"Élodie","address":{"city":"Paris"},"tags":["a","b"]},{"name":"Bob"}]
Résultat :
name,address.city,tags
Élodie,Paris,"[""a"",""b""]"
Bob,,
Questions fréquentes
Excel affiche des caractères illisibles à l’ouverture du CSV. Que faire ?
Excel lit souvent un CSV UTF-8 sans BOM comme s’il était encodé dans une ancienne page de codes, ce qui abîme les accents (é devient é) ainsi que le coréen ou le chinois. Laissez l’option BOM UTF-8 activée et utilisez Télécharger le CSV ; le fichier commence alors par les octets EF BB BF et Excel le lit en UTF-8. Le bouton Copier, lui, n’ajoute pas de BOM.
Comment un JSON imbriqué devient-il un tableau ?
Un objet contenu dans un objet devient une colonne dont le nom utilise des points, par exemple address.city. Un tableau est placé dans une seule cellule sous forme de chaîne JSON. Si les lignes n’ont pas les mêmes clés, les colonnes sont fusionnées dans l’ordre de leur première apparition et les cellules manquantes restent vides.
Puis-je reconvertir le CSV en JSON ?
Avec le convertisseur CSV en JSON, en activant la conversion des nombres et la reconstruction de l’imbrication, vous obtenez un résultat très proche de l’original. Le CSV ne transporte toutefois aucun type : la chaîne "123" et le nombre 123 y sont identiques.
Mes données sont-elles envoyées sur un serveur ?
Non. La conversion se fait entièrement dans votre navigateur ; rien n’est envoyé ni enregistré.