JSON ↔ CSV

Convertis entre JSON et CSV dans les deux sens, dans ton navigateur.

Comment ça marche

Cet outil convertit entre deux des formats de données les plus courants, dans les deux sens. Du JSON vers le CSV, il analyse ton entrée, collecte toutes les clés présentes dans les objets pour former la ligne d'en-tête, puis écrit une ligne par objet — en protégeant chaque valeur selon la norme CSV, pour que le texte contenant des virgules, des guillemets doubles ou des sauts de ligne reste intact. Du CSV vers le JSON, il respecte les champs entre guillemets pendant la lecture, prend la première ligne comme en-tête et transforme chaque ligne suivante en objet. Les deux conversions s'exécutent entièrement dans ton navigateur : le payload d'API ou l'export de tableur que tu colles ne quitte jamais ton appareil.

Comment convertir du JSON en CSV (et inversement)

Tout commence dans la zone Entrée. Pour du JSON vers du CSV, colle un tableau d'objets comme [{"nom":"Alice","age":30}] — un objet unique est aussi accepté et devient une ligne — puis clique sur JSON → CSV. Le tableau converti apparaît dans la zone Résultat, accompagné d'un message indiquant combien de lignes ont été produites. Pour le sens inverse, colle un tableau CSV dont la première ligne est l'en-tête et clique sur CSV → JSON : chaque ligne devient un objet et la sortie est indentée de deux espaces, prête à être lue ou collée dans du code. Termine dans les deux cas avec Copier le résultat pour mettre le texte dans le presse-papiers ou Télécharger pour l'enregistrer en fichier data.csv ou data.json.

Un exemple concret

Imaginons que l'API de ta boutique renvoie les commandes récentes sous forme de tableau JSON. Colle quelque chose comme [{"id":1,"produit":"Câble USB-C","qte":2,"note":"cadeau, fragile"}] et clique sur JSON → CSV. Le résultat est un tableau de deux lignes : un en-tête id,produit,qte,note et une ligne de données. La valeur « cadeau, fragile » contient une virgule, donc l'outil la met automatiquement entre guillemets doubles — ouvre le fichier dans un tableur et chaque champ retombe dans sa propre cellule. Plus tard, réexporte la feuille en CSV et clique sur CSV → JSON : le champ entre guillemets est analysé correctement et tu retrouves le même tableau, l'aller-retour passe sans perte.

Ce que tu peux attendre

L'outil est volontairement simple et prévisible. Le délimiteur est toujours la virgule — il n'existe pas d'option pour des points-virgules ou des tabulations, donc un CSV exporté dans un format régional qui utilise ; ne sera pas analysé tel quel. La ligne d'en-tête est construite à partir des clés dans leur ordre d'apparition, les objets qui ne partagent pas toutes les clés laissent simplement des cellules vides, et les valeurs null ou undefined deviennent des cellules vides. Les objets et tableaux imbriqués (dans les deux sens) sont écrits dans la cellule sous forme de JSON compact, car le CSV n'a pas de notion de profondeur. Lors d'une conversion CSV vers JSON, chaque valeur revient sous forme de chaîne — l'outil ne devine jamais les types — et le JSON de sortie est indenté de deux espaces. Les lignes vides d'un CSV d'entrée sont ignorées, les fichiers téléchargés s'appellent data.csv ou data.json, et il n'y a pas de limite de taille en dehors de ce que ton navigateur peut gérer.

Problèmes courants et solutions

Tes cellules CSV reviennent en chaînes dans le JSON ? C'est normal — l'outil ne devine pas les types, donc une cellule comme 30 devient "30" ; convertis-la toi-même avec Number() quand tu as besoin d'un nombre. Une erreur « JSON invalide » ? L'analyse JSON est stricte : vérifie qu'il n'y a pas de virgule de fin, des clés sans guillemets doubles, ou des chaînes entre apostrophes. Du texte JSON compact dans certaines cellules CSV ? Le CSV est plat, donc les objets et tableaux imbriqués sont stockés tels quels dans la cellule — rien n'est perdu, mais ces champs restent en JSON tant que tu ne les déplies pas toi-même. Des lignes que tu attendais manquent ? Les lignes vides de l'entrée sont ignorées, et un CSV sans en-tête verra sa première ligne consommée comme en-tête — ajoute une ligne d'en-tête au préalable.

Questions fréquentes

Et si mes objets ont des données imbriquées ?

Les objets et tableaux imbriqués sont écrits dans la cellule CSV sous forme de JSON compact, aucune information n'est perdue même si le CSV lui-même est plat.

Gère-t-il les virgules dans les valeurs ?

Oui. Les valeurs contenant des virgules, des guillemets doubles ou des sauts de ligne sont automatiquement mises entre guillemets à l'export et analysées correctement à l'import, selon la convention CSV standard.

Un champ CSV entre guillemets peut-il s'étendre sur plusieurs lignes ?

Oui. Un champ entouré de guillemets doubles peut contenir des sauts de ligne, et l'analyseur les conserve comme partie de la valeur au lieu de conclure la ligne.

Les nombres restent-ils des nombres quand on convertit du CSV en JSON ?

Non. Chaque cellule devient une chaîne, donc une valeur comme 30 sort en "30". L'outil évite ainsi de se tromper de type, mais cela signifie qu'il faut convertir les champs numériques avec Number() dans ton propre code si tu en as besoin en tant que nombres.

Mon CSV n'a pas de ligne d'en-tête — que se passe-t-il ?

La première ligne est toujours traitée comme l'en-tête. Si ton fichier n'en a pas, cette première ligne de données servira de noms de colonnes — ajoute une ligne d'en-tête à ton CSV au préalable.

Mes données sont-elles envoyées quelque part ?

Non. Les deux conversions s'exécutent entièrement dans ton navigateur et rien de ce que tu colles ne quitte ton appareil — l'outil fonctionnerait même hors ligne.