JSON et CSV : déplacer les données sans perdre leur sens
Une conversion réussie ne se résume pas à un fichier qui s’ouvre. Un identifiant doit rester un identifiant, un prix un prix et une donnée manquante rester manquante. Des erreurs de type ou de structure peuvent passer sans message.
Lignes simples ou données imbriquées ?
CSV convient aux lignes et champs d’un tableau. JSON représente des valeurs typées, des listes et des objets imbriqués. Si un enregistrement contient plusieurs adresses ou produits, décidez comment les aplatir en colonnes avant l’export CSV. Aucun tableau unique ne convient à toutes les structures.
Références: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Mettre en forme n’est pas valider
Mettre en forme du JSON facilite la lecture de l’indentation ; cela ne prouve pas qu’un prix ou une date est correct. Un schéma vérifie les types déclarés et les champs obligatoires, tandis que les règles de l’application déterminent le sens.
En JSON, une chaîne entre guillemets diffère d’un nombre. En CSV, les champs contenant une virgule ou un saut de ligne nécessitent les guillemets appropriés ; un guillemet interne à un champ délimité est doublé.
Références: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Contrôles après conversion
Gardez l’original. Comparez le nombre d’enregistrements et les noms des colonnes, puis examinez un enregistrement ordinaire et un autre avec vide, ponctuation ou texte multilingue. Ouvrez la sortie dans l’application destinataire : le convertisseur ne garantit pas ses choix d’importation.
- Conservez un identifiant tel que 0017 en texte si ses zéros sont significatifs.
- N’assimilez pas sans décision explicite une valeur vide, null et 0.
- Utilisez des exemples fictifs, pas des identifiants secrets ni des données personnelles réelles.
- Traitez prudemment un CSV non fiable dans un tableur : certaines cellules peuvent être interprétées comme des formules.
Références: OWASP — CSV Injection
Exemple : une virgule dans un nom
JSON d’exemple : {"sku":"0017","name":"Carnet, bleu","price":12.5}. Dans un CSV séparé par des virgules, encadrez le nom : 0017,"Carnet, bleu",12.5.
À l’importation, vérifiez que sku reste 0017 et ne devient pas 17, et que le nom ne se répartit pas sur 2 colonnes. La seule présence d’un fichier de sortie ne prouve aucun de ces points.