Convertisseurs
Convertir entre formats de données n’est jamais une traduction pure, car deux formats ne portent jamais le même ensemble d’idées. CSV n’a pas d’imbrication, XML n’a pas de tableaux, YAML a des commentaires que JSON ne peut pas garder, et TypeScript a des types que JSON ne transporte pas.
Chaque convertisseur ici prend ces décisions explicitement et signale celles qui se sont appliquées à votre document. Un convertisseur qui aplatit un tableau dans une cellule, ou qui laisse tomber une colonne apparue seulement dans des enregistrements ultérieurs, ou qui transforme un code postal en un nombre plus petit, devrait le dire. La plupart ne le font pas.
Dans les deux sens
Les allers-retours ne sont sans perte que dans certaines limites, et chaque page dit où sont les siennes.
JSON et CSV
JSON et YAML
Dans un seul sens
Ce que chaque conversion perd
| Conversion | Ce qui ne survit pas |
|---|---|
| JSON vers CSV | L’imbrication, sauf si vous l’aplatissez. L’information de type, puisque CSV n’en a aucune. |
| CSV vers JSON | Rien, si vous gardez tout en chaînes. Activer l’inférence de type est le moment où les données s’abîment. |
| YAML vers JSON | Les commentaires, définitivement. Les ancres sont étalées sur place. Les horodatages deviennent des chaînes. |
| XML vers JSON | L’ordre du contenu mixte, les espaces de noms en tant que tels, et la différence entre un élément et une liste d’un seul. |
| JSON vers XML | Les noms de clés qui ne sont pas des noms XML valides sont réécrits et ne reviennent pas. |
| JSON vers TypeScript | Tout à l’exécution. Les types sont effacés à la compilation. |