Convertisseur JSON vers CSV

Transformez un tableau JSON d'objets en tableau CSV, entièrement dans votre navigateur.

Fonctionne entièrement dans votre navigateur. Rien n'est envoyé, journalisé ni conservé.

Collez une réponse d'API et récupérez un tableau ouvrable dans un tableur. Chaque clé présente quelque part dans le tableau devient une colonne, et tout se passe dans votre navigateur : une charge utile pleine de données personnelles ne quitte jamais votre machine.

Comment ça marche

Le document doit être un tableau d'objets, parce que c'est ce qu'est un tableau de données : un objet par ligne. Un objet seul est accepté comme tableau d'une seule ligne. Tout le reste — un nombre nu, une chaîne, un tableau de chaînes — n'a pas de lignes et est signalé plutôt que deviné.

L'en-tête est l'union de toutes les clés du tableau, dans l'ordre où chacune est apparue pour la première fois, et non simplement les clés du premier objet. Un champ facultatif absent du premier enregistrement est exactement la forme qu'a une vraie réponse d'API, et ne retenir que les clés de la première ligne supprimerait cette colonne pour toutes les lignes.

Un objet ou un tableau imbriqué est écrit dans sa cellule sous forme de JSON plutôt que réparti sur des colonnes supplémentaires. L'aplatissement paraît plus net et ne survit pas au retour : deux enregistrements imbriqués différemment produiraient des ensembles de colonnes différents, et une clé contenant elle-même un point deviendrait indiscernable d'un chemin imbriqué.

Null devient une cellule vide, true et false deviennent les mots true et false, et les nombres sont écrits comme JSON les écrirait : une valeur ne change donc pas de forme en sortant.

Exemples

Cas Saisie Résultat
Une clé absente du premier enregistrement obtient quand même sa colonne [{"id": 1}, {"id": 2, "note": "late"}] id,note 1, 2,late

Questions fréquentes

Pourquoi mon objet imbriqué apparaît-il comme du JSON dans une cellule ?

Parce que l'aplatir ne serait pas réversible. Si un enregistrement s'imbrique sur trois niveaux et le suivant sur un seul, l'aplatissement produit deux ensembles de colonnes différents à partir du même tableau ; et une clé contenant déjà un point devient impossible à distinguer d'un chemin imbriqué. Conserver la structure dans la cellule fait que la conversion inverse vous rend ce dont vous êtes parti.

Excel ouvrira-t-il ce fichier correctement ?

Cela dépend davantage de votre locale que du fichier. Un tableur dans une locale qui écrit les décimales avec une virgule attend le point-virgule comme séparateur, et c'est pourquoi il figure dans la liste. Si un fichier séparé par des virgules s'ouvre avec une seule colonne par ligne, la raison est là.

Mon tableau est imbriqué dans un objet. Pourquoi la conversion échoue-t-elle ?

Parce que le document dans son ensemble n'est pas une liste de lignes. Une réponse d'API de la forme {"data": [...]} demande que le tableau lui-même soit collé, pas son enveloppe. L'enveloppe possède exactement une ligne — elle-même — et la convertir produirait un tableau d'une cellule contenant tout.

Mon document est-il envoyé quelque part ?

Non. La page charge un petit script qui convertit localement. Vous pouvez vous déconnecter du réseau une fois la page chargée, l'outil continue de fonctionner.

Bon à savoir

  • Tout se passe dans votre navigateur. Le document n'est ni téléversé, ni journalisé, ni stocké.
  • Les guillemets suivent la RFC 4180 : un champ est mis entre guillemets lorsqu'il contient le séparateur, un guillemet double ou un saut de ligne, et un guillemet double à l'intérieur d'un champ entre guillemets s'écrit deux fois. Les barres obliques inverses sont des caractères ordinaires et ne sont jamais traitées comme des échappements.

Sources

Tous les outils Code