mygems

Convertir du JSON en CSV

Un arbre aplati en tableau que l’on peut ouvrir partout.

  • Objets imbriqués aplatis
  • Tableaux gardés ou répartis en lignes
  • Trouve le tableau d’enregistrements
  • Rien n’est envoyé

1.Ouvrez le JSON

Du JSON ou du JSON Lines. Glissez-le ici, ou choisissez un fichier.

Ou collez du JSON à la place

Pourquoi ça existe

Le JSON est un arbre et le CSV un rectangle : tout convertisseur fait donc des choix sur l’imbrication, et la plupart les font en silence. Ici, ils sont visibles : les objets imbriqués deviennent des colonnes à points comme address.city, les tableaux restent entiers dans une cellule sauf si vous en choisissez un à répartir sur des lignes, et les enregistrements sont retrouvés même quand ils se trouvent dans une réponse d’API plutôt qu’à la racine du fichier.

Ce que ça fait

  • Lit un tableau JSON, un objet seul, ou du JSON Lines avec un enregistrement par ligne.
  • Repère les tableaux dans une réponse d’API, comme `data` ou `results`, et vous laisse choisir celui qui contient les enregistrements.
  • Aplatit les objets imbriqués en colonnes à points, dans l’ordre où les champs apparaissent pour la première fois.
  • Garde les tableaux en texte JSON dans une cellule, ou donne à chaque élément d’un tableau sa propre ligne, en répétant les champs du parent.
  • Accepte un fichier ou du JSON collé, et affiche un aperçu du tableau avant le téléchargement.

Des enregistrements qui n’ont pas tous les mêmes champs

C’est le cas du vrai JSON, la plupart du temps. Chaque champ présent dans au moins un enregistrement devient une colonne, et un enregistrement sans ce champ reçoit une cellule vide. Rien n’est perdu parce que le premier enregistrement ne l’avait pas.

Questions

Comment les objets imbriqués sont-ils traités ?
Chaque champ imbriqué devient sa propre colonne, nommée d’après son chemin : `{"address": {"city": "Lyon"}}` donne une colonne `address.city`. Quelle que soit la profondeur de l’imbrication, on obtient un seul niveau de colonnes.
Que deviennent les tableaux ?
Par défaut, un tableau reste dans une seule cellule sous forme de texte JSON : le nombre de lignes correspond donc toujours au nombre d’enregistrements. Choisissez un tableau à répartir, et chacun de ses éléments reçoit sa propre ligne, le reste de l’enregistrement étant répété à côté.
Mon JSON est un objet, pas un tableau. Ça marchera ?
Oui. Si les enregistrements se trouvent sous une clé comme `data` ou `items`, l’outil liste tous les tableaux qu’il trouve et commence par le plus grand. Un objet seul sans tableau devient un tableau d’une seule ligne.