Convertir JSON en CSV ou en Tableur
Transformez un tableau JSON en fichier CSV ouvrable dans Excel ou Sheets.
Déposez votre fichier ici ou cliquez
Fichiers JSON (.json)
Vos données ne quittent pas votre appareil
Rien à supprimer ensuite
Sûr pour les réponses d’API brutes
Fonctionne dans tout navigateur moderne
Comment ça marche
- 1
Collez ou déposez votre JSON
Un tableau d’objets fonctionne directement ; collez le texte ou déposez un fichier .json sur la page.
- 2
Vérifiez la ligne d’en-tête
Confirmez que les colonnes correspondent à vos attentes avant d’emporter le fichier dans un tableur.
- 3
Téléchargez le CSV
Ouvrez-le dans Excel, Google Sheets ou Numbers, ou transmettez-le à un système qui importe du CSV.
Pourquoi cet outil
L’imbrication est aplatie
Les objets dans les objets deviennent des noms de colonnes pointés au lieu d’être écartés ou déversés en texte brut dans une cellule.
Un en-tête pour des données irrégulières
Des enregistrements aux clés différentes s’alignent quand même, car l’en-tête est l’union de toutes les clés rencontrées.
S’ouvre proprement dans Excel
Guillemets et échappement suivent les règles que les tableurs appliquent réellement : les colonnes atterrissent au bon endroit.
Rien n’est envoyé
L’analyse a lieu dans votre navigateur — une réponse d’API pleine de fiches clients n’atteint jamais un serveur.
Aucune limite d’enregistrements
Le seul plafond est la mémoire de votre appareil, pas un quota de lignes d’une offre gratuite.
Gratuit et sans compte
Aucune inscription, aucun filigrane et aucune limite sur le nombre de fichiers convertis.
Un arbre doit devenir un rectangle, et c’est vous qui choisissez où couper
Toute la difficulté de ce sens est là. JSON est un arbre : des objets dans des objets, et des tableaux à l’intérieur. CSV est un rectangle : un jeu de colonnes fixe, un enregistrement par ligne, aucune imbrication possible. Un convertisseur ne peut donc pas se contenter de traduire — il doit aplatir, et aplatir revient à décider ce qui compte comme une ligne. Pour un simple tableau d’objets plats la réponse va de soi : un objet par ligne. Pour tout ce qui est plus profond, c’est un vrai choix. Une commande contenant une liste de lignes peut devenir une ligne par commande avec les articles écrasés dans une seule cellule, ou une ligne par article avec le détail de la commande répété partout. Aucun des deux n’est faux ; ils répondent à des questions différentes. Sachez lequel votre destination attend avant de convertir, car le mauvais choix produit un fichier qui a l’air correct et compte tout en double.
Les enregistrements JSON n’ont pas à s’accorder, et le CSV exige qu’ils s’accordent
Un tableau d’objets JSON peut être irrégulier. Le premier enregistrement a sept clés, le quatrième en a neuf, et au neuvième il en manque une que tous les autres portent — c’est du JSON parfaitement valide, et les réponses d’API en produisent sans cesse, car les champs facultatifs sont simplement omis plutôt que mis à null. Un CSV possède une unique ligne d’en-tête qui régit toutes les lignes du dessous : le jeu de colonnes doit donc être l’union de toutes les clés apparues quelque part, et les enregistrements auxquels il manque une clé reçoivent une cellule vide. C’est la seule réponse praticable, mais elle masque une chose : une cellule vide ne dit pas si la clé était absente, présente à null, ou présente et vide. Les trois s’effondrent en rien. Si cette distinction compte pour ce qui lira le fichier ensuite, il faut la préserver dans le JSON avant conversion, car le CSV n’a aucun moyen de la transporter.
Les types se perdent à la sortie, et c’est généralement sans conséquence
À l’entrée dans JSON, la question délicate est de savoir quelles chaînes doivent devenir des nombres. À la sortie, la question disparaît : le CSV n’a pas de types, donc `42`, `true` et `null` deviennent de simples caractères et leur sens est remis à ce qui lira le fichier. C’est le plus souvent inoffensif, puisque le lecteur est un tableur et une personne. Cela devient visible en deux endroits. Les champs booléens arrivent sous forme du texte littéral `true` et `false`, qui se trie et se filtre autrement qu’une case à cocher et demandera peut-être une conversion si un collègue doit les exploiter. Et null devient une cellule vide, indiscernable — comme plus haut — d’un champ manquant. Aucun des deux n’est un défaut de conversion ; les deux méritent d’être connus avant que quelqu’un bâtisse une formule par-dessus le résultat.
Pourquoi un champ texte peut se transformer en formule
C’est le seul véritable enjeu de sécurité de ce sens, et il existe parce que les chaînes JSON portent souvent du texte saisi par des humains. Quand un tableur ouvre un CSV, il traite toute cellule commençant par `=`, `+`, `-` ou `@` comme une formule et non comme du texte. Une description de produit débutant par un signe moins, un champ de notes commençant par `@nom`, une ligne d’adresse ouvrant par un plus : chacune devient quelque chose que le tableur tente d’évaluer, et au mieux vous trouvez une erreur dans la cellule à la place de vos données. Au pire, une valeur forgée exprès devient une formule exécutable dans le classeur de quelqu’un d’autre, raison pour laquelle on parle d’injection CSV et non d’une bizarrerie de mise en forme. Si le JSON provient d’un formulaire rempli par de vrais utilisateurs, parcourez ces colonnes après ouverture au lieu de supposer que le texte est arrivé comme du texte.
La destination est une personne, et c’est là tout l’enjeu
Cette conversion va dans un sens précis pour une raison précise. Le JSON va vers les programmes ; le CSV va vers les gens et vers les outils que ces gens utilisent déjà. Une réponse d’API devient une feuille qu’un collègue peut trier et filtrer. Un export d’outil devient un fichier sur lequel la finance monte un tableau croisé. Une liste d’enregistrements devient quelque chose que vous tendez à qui n’ouvrira jamais un éditeur de code. Voilà pourquoi la cible est le CSV plutôt que de garder les données telles quelles, et pourquoi la ligne d’en-tête compte plus que la taille en octets : l’enjeu est la lisibilité. Si le public est un programme et non une personne, vous voulez sans doute le sens inverse, ou aucune conversion. Et si le fichier part directement dans Excel pour y rester, passer par un vrai classeur évite d’emblée les questions d’encodage et de séparateur.
Pourquoi une conversion locale compte pour ce type de fichier
Le JSON que l’on convertit en CSV est presque toujours produit par un système : une réponse d’API, un export de base de données, une charge utile de webhook, un rapport d’outil interne. Ces charges portent plus que les champs que vous regardiez. Identifiants internes, adresses e-mail, horodatages, et parfois un jeton d’accès ou un identifiant de session, logent dans des clés jusqu’auxquelles vous n’avez jamais fait défiler, puisque vous ne veniez que pour trois colonnes. Un convertisseur hébergé reçoit l’ensemble. Cet outil, lui, s’exécute entièrement dans votre navigateur : le texte est analysé sur la page et le CSV réécrit sans qu’aucune requête réseau ne transporte les données, ce que vous pouvez vérifier dans l’onglet Réseau des outils de développement. Quand l’entrée est une réponse d’API brute, cette différence vaut bien plus que les deux minutes économisées.
Erreurs courantes à éviter
- Convertir sans avoir décidé ce qu’est une ligne. Une commande avec des articles peut donner une ligne par commande ou une par article : choisissez délibérément, car le mauvais choix produit un fichier qui semble correct et double les totaux.
- Croire qu’une cellule vide signifie quelque chose de précis. Un blanc peut être une clé absente, un null ou une chaîne vide ; si la distinction compte, préservez-la dans le JSON avant conversion, car le CSV ne peut pas la transporter.
- Ouvrir le résultat sans inspecter les cellules commençant par `=`, `+`, `-` ou `@`. Les tableurs les traitent comme des formules : un texte saisi par un utilisateur peut arriver en erreur ou, pire, en quelque chose d’exécutable.
- Supposer que tous les enregistrements ont les mêmes clés. Les réponses d’API omettent les champs facultatifs au lieu de les mettre à null : l’en-tête doit être l’union de toutes les clés — vérifiez que le nombre de colonnes est bien celui attendu.
- Coller une réponse d’API brute dans un convertisseur en ligne. Ces charges portent souvent identifiants, e-mails et parfois jetons dans des champs que vous n’avez jamais atteints ; convertissez en local.
Comparaison
| Critère | Cet outil | Convertisseurs en ligne | Un script maison |
|---|---|---|---|
| Données envoyées à un serveur | Jamais | Le plus souvent | Non |
| Installation nécessaire | Aucune | Aucune | Environnement et dépendances |
| Imbrication aplatie | Oui, colonnes pointées | Variable | Ce que vous codez |
| Limite d’enregistrements | Mémoire de l’appareil seulement | Souvent plafonnée | Aucune |
| Compte ou inscription | Pas nécessaire | Souvent exigé | Pas nécessaire |
| Prix | Gratuit | Gratuit / offres payantes | Votre temps |
Fonctionnalités
Colonnes pointées pour l’imbrication
Un objet `address` imbriqué devient `address.city` et `address.postcode` plutôt qu’un bloc de texte.
En-tête d’union
Chaque clé trouvée dans l’ensemble apparaît une fois : un champ absent de certaines lignes obtient tout de même sa colonne.
Guillemets conformes à la norme
Les valeurs contenant virgules, guillemets ou sauts de ligne sont encadrées et échappées : la structure des lignes tient.
Sortie en UTF-8
Accents, cédilles, texte arabe, turc et autres caractères hors ASCII sont écrits sans altération.
Supporte les gros tableaux
Des dizaines de milliers d’enregistrements se convertissent sans file d’attente d’envoi.
Rien à installer
Aucun téléchargement, aucun environnement d’exécution, aucune dépendance : tout se passe sur la page web.
Compatible arabe et RTL
Interface complète en huit langues, dont l’arabe de droite à gauche.
Sécurisé par défaut
Servi en HTTPS, sans suivi de fichiers ni envoi à un tiers.
Fonctionne hors ligne une fois chargé
La page continue de fonctionner après le chargement de l’onglet, car la conversion est locale.
Qui l’utilise
Développeurs
Transformer une réponse d’API en feuille qu’un collègue non technique peut réellement lire.
Analystes de données
Amener un export JSON à une forme qui accepte tableaux croisés et filtres sans écrire d’abord un analyseur.
Équipes support
Convertir un export de tickets ou de journaux en quelque chose de triable dans un tableur.
Équipes opérationnelles
Remettre un export système à la finance ou à la direction dans le format qu’elles utilisent déjà chaque jour.
Questions Fréquentes
Non. La conversion s’exécute entièrement dans votre navigateur — vos données ne sont jamais envoyées, stockées ni partagées.
Oui. Chaque ligne et colonne est convertie fidèlement ; la structure est préservée.
Oui — entièrement gratuit, sans compte, sans filigrane et sans limite de fichiers.