Données · 4 min de lecture ·

Du JSON au CSV sans perdre un seul champ

Clés imbriquées, champs facultatifs et virgules dans les textes : comment 4Dev aplatit un JSON désordonné en un CSV prêt pour le tableur.

Un tableur est plat, le JSON ne l’est pas. Toute conversion de JSON en CSV doit décider quoi faire des objets imbriqués, des tableaux et des clés que seuls certains enregistrements possèdent. Voici exactement ce que fait le convertisseur de 4Dev.

Chaque clé a sa colonne

La ligne d’en-tête est construite à partir des clés de tous les objets, dans l’ordre de leur première apparition, et pas seulement à partir du premier enregistrement. Un enregistrement auquel il manque une clé reçoit une cellule vide : les colonnes ne se décalent jamais et les champs facultatifs ne disparaissent pas.

[{"id":1,"name":"Ada"},
 {"id":2,"name":"Alan","note":"optional"}]

id,name,note
1,Ada,
2,Alan,optional

Les objets imbriqués deviennent des colonnes avec tiret bas

Les objets sont aplatis en reliant leurs clés par un tiret bas : {"address":{"city":"Lisbon"}} devient une colonne nommée address_city. Un tableau de valeurs simples tient dans une seule cellule ("admin, dev"), et un tableau d’objets est conservé sous forme de texte JSON dans sa cellule : rien n’est perdu.

Les virgules et les guillemets sont échappés pour vous

Toute valeur qui contient une virgule, un guillemet double ou un saut de ligne est entourée de guillemets doubles, et les guillemets internes sont doublés : c’est la règle CSV standard qu’attendent Excel et Google Sheets.

2,"Alan, T.","says ""hi"""

Ouvrir le CSV dans Excel

Le CSV n’a pas de réglages propres, donc Excel devine. Deux choses tournent souvent mal. Dans les pays où la virgule sert de séparateur décimal, comme la France, Excel attend des points-virgules entre les colonnes et peut mettre une ligne entière dans une seule cellule. Et les accents, l’hébreu ou les emojis peuvent devenir des symboles étranges si le fichier est ouvert dans un encodage local plutôt qu’en UTF-8. Dans les deux cas, passez par Données → À partir d’un fichier texte/CSV dans Excel, choisissez UTF-8 et la virgule comme séparateur, et les colonnes s’affichent correctement.

Zéros initiaux et nombres longs

Les tableurs traitent comme un nombre tout ce qui ressemble à un nombre. Un code postal comme 01234 perd son zéro initial, et un identifiant à 16 chiffres comme 1234567890123456 est arrondi et affiché sous la forme 1,23457E+15. Le CSV lui-même est correct ; le dégât se produit quand Excel l’ouvre. Importez ces colonnes en texte et envoyez les identifiants longs sous forme de chaînes dans le JSON ("id": "1234567890123456"), pour que chaque outil les conserve tels quels.

Les tableaux dans les enregistrements

Les tableaux sont la partie la plus délicate de toute conversion, car un enregistrement peut contenir de nombreuses valeurs alors qu’une ligne CSV n’a qu’une cellule par colonne. Les répartir sur plusieurs lignes répéterait tous les autres champs, et les répartir sur des colonnes numérotées (tags_1, tags_2…) crée un en-tête différent pour chaque fichier. Garder une liste de valeurs simples dans une cellule, et un tableau d’objets sous forme de texte JSON, permet à chaque enregistrement de rester exactement une ligne et de reconstruire les données d’origine si besoin.

Vérifiez le résultat avant de le partager

  • Le nombre de lignes correspond au nombre d’enregistrements du tableau JSON.
  • L’en-tête contient tous les champs attendus, y compris les facultatifs.
  • Les champs imbriqués apparaissent sous forme de colonnes avec un tiret bas, comme address_city.
  • Les valeurs contenant des virgules, des guillemets ou des retours à la ligne sont restées dans une seule cellule.

Besoin d’un tableur ou du sens inverse ?

Le convertisseur JSON vers CSV de 4Dev applique toujours les mêmes règles d’aplatissement, et les outils JSON vers Excel et CSV vers JSON couvrent les autres cas courants. Pour vérifier rapidement, collez d’abord quelques enregistrements, regardez les colonnes, puis convertissez le fichier complet.

Ouvrir le convertisseur JSON vers CSV

LinkedInXFacebook