Ce que fait cet outil
YAML est un sur-ensemble de JSON : la correspondance est directe. Les objets deviennent des dictionnaires, les tableaux des séquences, et chaque scalaire garde son type.
{ "nom": "Ada", "tags": ["math", "moteur"], "actif": true }
nom: Ada
tags:
- math
- moteur
actif: true
Cité là où le sens changerait
{ "pays": "NO", "drapeau": "yes", "a": "12:30" }
pays: "NO"
drapeau: "yes"
a: "12:30"
Écrits nus, ces trois-là seraient lus faux, vrai et 750 par tout analyseur YAML 1.1 — celui qu’implémente PyYAML, et PyYAML est ce avec quoi une très large part du monde lit du YAML. On appelle cela le problème norvégien, du nom du code pays qui n’arrête pas de devenir un booléen.
Ici la valeur arrive de JSON en chaîne : aucune ambiguïté sur ce qu’elle est. La citer est la seule écriture qui la garde chaîne pour tous les lecteurs. Les vrais booléens restent nus : true reste true.
Les longs identifiants gardent leurs chiffres
{ "id": 12345678901234567890 }
ressort avec ses vingt chiffres. La plupart des convertisseurs analysent d’abord le JSON en valeur JavaScript, ce qui fait passer chaque nombre par un flottant double précision et arrondit au-delà d’une quinzaine de chiffres — en silence. Le nombre est lu ici comme le texte qu’il est.
Les chaînes multilignes deviennent des scalaires de bloc
Une chaîne contenant des sauts de ligne s’écrit sous la forme de bloc, lisible, plutôt qu’avec des \n :
description: |-
première ligne
seconde ligne
Ce qui ne peut pas traverser
Les commentaires et les ancres. JSON n’a ni les uns ni les autres : il n’y a rien à porter. Un convertisseur qui proposerait de les ajouter inventerait la documentation de votre fichier, et c’est un travail de personne, pas d’outil.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.