YAML est un langage beaucoup plus grand que JSON. Tout document JSON est YAML valide, mais l'inverse n'est pas vrai, ce qui signifie qu'un convertisseur JSON vers YAML peut être entièrement correct tandis qu'un convertisseur YAML vers JSON doit refuser les parties de YAML que JSON ne peut pas exprimer.
Utilisation du convertisseur JSON vers YAML
Choisissez une direction et une largeur d'indentation, puis appuyez sur Convertir. En écrivant du YAML, un mapping devient une clé par ligne, un tableau répète son tiret par élément, et un null devient une clé sans valeur du tout.
Le bug contre lequel cet outil spécifiquement protège
Un scalaire YAML brut qui ressemble à un nombre, un booléen, ou un
indicateur YAML est mal lu comme ce type dès que quelque chose parse le
fichier en arrière. Un code postal de 01234 est le cas classique : écrit
sans guillemets, un analyseur YAML le lit comme le nombre 1234 et le zéro
initial est perdu pour toujours. Le même problème touche une chaîne qui
par hazard se lit comme "true" ou "null".
Convertir
{"zip":"01234","active":"true","note":null,"id":12345678901234567890}
produit :
zip: '01234'
active: 'true'
note: null
id: 12345678901234567890
Les deux valeurs de chaînes sont spécifiquement quotées parce que les
laisser non quotées changerait leur type au retour. Le null réel est
écrit non quoté, car c'est l'orthographe correcte sans guillemets. Le id
de vingt chiffres survit intact, car cela passe par le flux de tokens
plutôt qu'une valeur analysée par JSON.parse.
Ce que le lecteur accepte et ce qu'il refuse
Relire YAML en JSON, l'outil comprend un mapping, une séquence, une chaîne quotée, un scalaire de bloc, une collection de flux, et un scalaire plat plié. Il refuse les ancres, les alias et les balises par nom plutôt que de les ignorer silencieusement, car YAML n'a pas d'équivalent pour aliaser une valeur dans JSON et prétendre le contraire produirait un document qui semble juste.
Voyage aller-retour
Convertir l'exemple ci-dessus depuis YAML retourne le document original
exact : "01234" et "true" en chaînes, null en null, et l'entier
complet de vingt chiffres. Ce voyage aller-retour est le vrai test de si
les règles de guillemets d'un convertisseur sont correctes, car une mauvaise
règle ne se montre généralement que quand vous reconvertissez et comparez.