Fonctionne sur votre appareil · Votre fichier ne quitte jamais votre appareil.
Déposez un fichier .json ou collez du JSON directement depuis la réponse d’une API, et obtenez un CSV à ouvrir dans Excel, Google Sheets ou n’importe quel écran d’import. Une liste au premier niveau donne une ligne par élément ; sinon, c’est la plus longue liste d’enregistrements du document qui est utilisée – {"results": [...], "count": 2} donne une ligne par résultat ; un objet qui ne contient aucune liste devient une seule ligne.
Les règles sont fixes, donc le résultat est prévisible : les objets imbriqués deviennent des colonnes séparées par des points (adresse.ville), une liste de valeurs simples est jointe par des points-virgules dans une seule cellule, et une liste d’objets à l’intérieur d’un enregistrement donne des colonnes numérotées (articles.0.nom). La ligne d’en-tête est l’union de toutes les clés rencontrées, dans l’ordre de première apparition ; un enregistrement à qui il manque un champ laisse simplement la cellule vide.
Le CSV suit la RFC 4180 – les champs contenant des virgules, des guillemets ou des retours à la ligne sont correctement entourés de guillemets – en UTF-8, avec un BOM facultatif pour qu’Excel affiche correctement toutes les écritures, les accents et les symboles. Une cellule qui commence par =, +, - ou @ reçoit une apostrophe devant, pour qu’un tableur l’affiche comme du texte au lieu de l’exécuter comme une formule. Vous voyez les 200 premières lignes avant de télécharger, et rien ne quitte votre appareil.
Ne convient pas pour : Un seul objet très imbriqué sans liste à l’intérieur – il se convertit, mais en une seule ligne très large plutôt qu’en tableau.
Une liste au premier niveau donne directement les lignes. Sinon, l’outil parcourt le document, jusqu’à huit niveaux de profondeur, à la recherche de la plus longue liste d’objets. Ainsi, {"response": {"data": {"items": [...]}}} et {"results": [...], "count": 2, "next": null} donnent tous deux une ligne par élément, et la ligne sous le résultat nomme la liste utilisée, par exemple results. Les valeurs posées à côté de cette liste, comme count et next, n’appartiennent à aucun enregistrement et sont laissées de côté.
Entre deux listes de même longueur, la plus proche du sommet l’emporte. Pour une liste plus courte, copiez-la de son [ à son ] et collez-la seule. Un document sans liste d’objets devient une seule ligne, et les enveloppes à clé unique sont sautées : {"order": {"id": 7, "total": 12}} donne les colonnes id et total.
Le texte est recopié exactement, dates comprises : elles restent sous la forme que leur donne le JSON, comme 2024-01-05T10:00:00Z. true et false sont écrits en toutes lettres. null, une liste vide et un objet vide donnent tous une cellule vide : dans le CSV, ils ressemblent donc à un champ absent.
Un nombre est écrit exactement comme dans le JSON : 1.0 reste 1.0, 1e21 reste 1e21, et un identifiant comme 12345678901234567890 garde tous ses chiffres, même sans guillemets. Un lecteur JSON ordinaire transformerait cet identifiant en 12345678901234567000.
Une liste de listes est ouverte sur un niveau : "m": [[1, 2], [3]] donne une colonne m.0 contenant 1;2 et une colonne m.1 contenant 3. Une liste qui mélange objets et valeurs simples numérote chaque entrée : "x": [{"z": 1}, 2] donne x.0.z et x.1.
Les noms de colonnes sont formés en joignant les clés par des points : une clé qui contient déjà un point peut donc rencontrer une clé imbriquée. {"a.b": 1, "a": {"b": 2}} produirait deux fois a.b. La seconde reçoit un suffixe : les colonnes sont a.b et a.b_2, et les deux valeurs sont gardées.
La virgule est le choix habituel. Le point-virgule convient à un tableur réglé dans une langue qui écrit les décimales avec une virgule, comme le français : un fichier séparé par des virgules s’y ouvre souvent dans une seule colonne. La tabulation et la barre verticale servent aux systèmes qui les réclament. Quel que soit le séparateur, le fichier porte l’extension .csv.
Une cellule qui commence par =, +, - ou @ est une formule pour un tableur, qui l’exécuterait à l’ouverture. Une telle cellule reçoit une apostrophe devant, la marque que les tableurs utilisent eux-mêmes pour dire « ceci est du texte » : =1+1 est écrit '=1+1. Les nombres simples comme -5 ou +3.5 restent tels quels.
Cette page dans d’autres langues: English · العربية · Deutsch · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা