Convertisseur JSON en CSV

Convertissez JSON en CSV en ligne — gratuit, instantané et privé. Le fichier est traité dans votre navigateur, jamais téléversé.

Séparateur CSV
Résultat

Le fichier converti et un aperçu apparaîtront ici.

Prêt. Choisissez un fichier de tableau à convertir.

Comment fonctionne la conversion

  • Un tableau d’objets devient des lignes et des colonnes ; les objets imbriqués sont aplatis en colonnes à clé pointée comme address.city.
  • Choisissez le séparateur adapté à vos données : virgule, point-virgule ou tabulation.

Votre fichier de tableau est converti dans votre navigateur. Rien n’est téléversé vers BroBroGo.

FAQ

Comment convertir JSON en CSV ?

Déposez votre fichier JSON et cliquez sur convertir : le fichier CSV se télécharge en quelques secondes, avec un aperçu du résultat. Tout se passe sur votre appareil.

Quelle taille de fichier puis-je convertir ?

Jusqu’à 8 Mo, 10 000 lignes et 200 colonnes par fichier. Pour de plus grands jeux de données, mieux vaut les découper d’abord.

Conversion de JSON vers CSV: aplatir des données hiérarchiques en tableau plat

Ce répertoire explique comment fonctionne l’outil de conversion JSON vers CSV, ce qui le distingue des simples changeurs de format, et comment gérer les pertes de types et de structure inhérentes à ce passage.

Pourquoi cette conversion n’est pas une simple permutation de formats

À la différence d’une conversion entre CSV et Excel ou entre Excel et JSON, le passage de JSON vers CSV exige l’aplatissement d’un format hiérarchique et typé (JSON) vers un format plat et non typé (CSV). JSON supporte les objets, les tableaux, les nombres, les booléens et null dans des structures imbriquées. CSV ne connaît ni types, ni imbrication, ni feuilles multiples. La conversion abandonne donc toute information de type, toute structure imbriquée, toute mise en forme. Le seul moyen de représenter un objet JSON imbriqué dans une cellule CSV est d’aplatir les clés à l’aide d’une notation par chemin (dot‑path), par exemple adresse.ville. Les tableaux d’objets deviennent des lignes du tableau; les tableaux de tableaux restent des lignes, mais sans en‑têtes.

Tout le traitement s’effectue dans le navigateur: aucun fichier n’est téléversé vers un serveur. Cela garantit la confidentialité des données, mais impose des limites de taille (fichier trop volumineux, trop de lignes ou de colonnes) qui sont gérées localement.

Structure d’entrée: le JSON doit être « en forme de tableau »

L’outil n’accepte que des fichiers JSON qui sont déjà « table‑shaped » (en forme de tableau). La validation est claire: si le JSON n’est pas valide ou n’est pas tabulaire, le message d’erreur « Ce JSON est invalide ou n’est pas en forme de tableau. » s’affiche.

Deux cas sont acceptés:

  • Tableau d’objets: chaque objet devient une ligne, les clés des objets deviennent les colonnes. Pour les objets imbriqués, les clés sont aplaties avec des points (dot‑path). Exemple:

    [
      { "nom": "Dupont", "adresse": { "rue": "Main", "ville": "Montréal" } },
      { "nom": "Tremblay", "adresse": { "rue": "King", "ville": "Toronto" } }
    ]
    

    Donne deux colonnes: nom, adresse.rue, adresse.ville.

  • Tableau de tableaux: chaque sous‑tableau devient une ligne, chaque élément devient une cellule. Aucun en‑tête n’est généré.

Si le fichier contient un objet unique à la racine, il n’est pas considéré comme tabulaire et l’erreur s’affiche.

Choix du délimiteur CSV et conséquences sur les données

L’utilisateur choisit le délimiteur du fichier de sortie parmi trois options:

  • Virgule (,)
  • Point‑virgule (;)
  • Tabulation (\t)

Le choix importe surtout pour les locales où la virgule est déjà utilisée comme séparateur décimal (p. ex. au Québec, on écrit 3,14). Dans ce cas, un CSV à virgule peut causer des confusions si des nombres décimaux sont présents. L’outil ne fait aucune transformation des nombres: les valeurs sont écrites telles quelles, mais le CSV suit les règles standard de guillemets: toute valeur contenant le délimiteur, un saut de ligne ou un guillemet est encadrée de guillemets doubles, et les guillemets dans la valeur sont doublés.

Un problème courant: les zéros non significatifs dans des chaînes comme 00123 deviennent 123 si le JSON les interprète comme des nombres. En JSON, 00123 n’est pas un nombre valide (il serait écrit 123 ou "00123"). Si la valeur est une chaîne "00123", elle est conservée telle quelle. Mais une fois en CSV, un tableur peut l’interpréter comme un nombre et supprimer le zéro. Ce comportement est hors du contrôle de l’outil.

Perte de types et aplatissement: ce qui disparaît

JSON distingue les types: nombre (123), booléen (true), null, chaîne ("abc"), objet, tableau. CSV ne connaît que des chaînes de caractères. Tous les types JSON deviennent donc des chaînes dans le CSV. Les guillemets ne sont pas préservés: la valeur true devient le texte true (sans guillemets) dans la cellule, mais si la cellule contient une virgule, elle sera entourée de guillemets CSV – ces guillemets sont syntaxiques, pas sémantiques.

Les objets imbriqués sont aplatis, comme expliqué. Les tableaux d’objets peuvent être aplatis si les éléments sont des objets; mais si un tableau contient des valeurs scalaires, elles sont traitées comme une colonne unique dont chaque cellule contient la chaîne de la valeur (p. ex. "1,2,3" si le délimiteur est la virgule, mais cela serait confondu). L’outil ne tente pas de déplier automatiquement les listes; c’est à l’utilisateur de préparer son JSON avant la conversion.

La perte de structure est irréversible. Une fois en CSV, on ne peut pas reconstruire la hiérarchie originale sans une convention de nommage des colonnes (dot‑path) et une connaissance du schéma.

Limites et messages d’erreur

Puisque tout est côté client, l’outil impose des limites vérifiées localement:

Condition Message d’erreur
Aucun fichier sélectionné « Choisissez un fichier d’abord. »
Type de fichier non supporté « Choisissez un fichier CSV, JSON ou XLSX. »
Fichier trop volumineux « Ce fichier est trop volumineux. Utilisez un fichier de moins de ‹max›. »
Trop de lignes « Ce tableau contient plus de ‹max› lignes. »
Trop de colonnes « Ce tableau contient plus de ‹max› colonnes. »
Format de sortie non approprié « Choisissez un autre format de sortie. »
Échec de conversion « Impossible de convertir ce fichier. »
Annulation par l’utilisateur « Conversion annulée. »
Délai d’attente dépassé « Cette conversion prend trop de temps. Essayez un fichier plus petit. »

Les valeurs exactes de ‹max› (taille, lignes, colonnes) ne sont pas spécifiées dans la fiche; elles dépendent de l’implémentation, mais l’outil les affiche dans le message.

Prévisualisation et téléchargement

Avant de télécharger le fichier CSV, l’utilisateur voit un aperçu du tableau converti. L’aperçu montre les premières lignes avec le nombre total de lignes et de colonnes. La taille du fichier de sortie est aussi indiquée avant le téléchargement.

L’aperçu permet de vérifier que l’aplatissement s’est bien produit (p. ex. que adresse.ville apparaît comme en‑tête) et que les valeurs sont lisibles. Si le résultat ne correspond pas à ce qui est attendu, il est toujours temps de modifier la structure du JSON d’entrée.

FAQ

Q: Puis‑je convertir un fichier JSON qui contient plusieurs objets à la racine? R: Non, la racine doit être un tableau. Un objet unique n’est pas considéré comme tabulaire. Si votre fichier commence par {... }, il faut le placer dans un tableau: [ {... } ].

Q: Les nombres décimaux sont‑ils conservés? R: Oui, ils sont écrits comme chaînes dans le CSV. Par contre, un tableur comme Excel peut les interpréter et éventuellement modifier le format (p. ex. ajouter des décimales). Pour éviter cela, il faut importer le fichier CSV en spécifiant le type de colonne « Texte ».

Q: Comment gérer un tableau imbriqué, par exemple une liste de tags? R: L’outil aplatit les objets, mais pas les tableaux de scalaires. Si un objet contient une propriété tags: ["a","b","c"], la cellule CSV contiendra "a,b,c" si le délimiteur est la virgule, mais l’aperçu risque de mal interpréter les virgules internes. Il est préférable de transformer le JSON en amont pour avoir une ligne par tag (en dupliquant les autres colonnes) ou de sérialiser le tableau en une chaîne avec un autre séparateur.

Q: L’outil conserve‑t‑il les guillemets autour des chaînes JSON? R: Non. Les guillemets JSON font partie de la syntaxe et ne sont pas des données. Une chaîne "Montréal" devient la valeur Montréal dans le CSV (sans guillemets). Les guillemets CSV ajoutés sont purement syntaxiques pour protéger le délimiteur.

Q: Puis‑je choisir un autre format de sortie que CSV? R: L’outil ne permet que CSV comme format de sortie. Si vous avez besoin d’un autre format (p. ex. TSV ou XLSX), il faut passer par une autre conversion.

Q: Que faire si la conversion prend trop de temps? R: Réduisez la taille du fichier JSON. L’outil affichera un message d’erreur si le délai est dépassé. Comme le traitement est local, les performances dépendent de la mémoire et du processeur de votre ordinateur.