YAML es un lenguaje mucho mas grande que JSON. Todo documento JSON es YAML valido, pero lo contrario no es verdad, lo que significa que un convertidor JSON a YAML puede ser completamente correcto mientras que un convertidor YAML a JSON tiene que rechazar las partes de YAML que JSON no tiene forma de expresar.
Usando el convertidor JSON a YAML
Elige una direccion y un ancho de indentacion, luego presiona Convertir. Al escribir YAML, un mapping se convierte en una clave por linea, un array repite su guion por item, y un null se convierte en una clave sin valor alguno.
El bug contra el que esta herramienta especificamente protege
Un escalar YAML plano que parece un numero, un booleano, o un indicador
YAML se lee mal como ese tipo en el momento en que algo parsea el archivo
de vuelta. Un codigo postal de 01234 es el caso clasico: escrito sin
comillas, un parser YAML lo lee como el numero 1234 y el cero inicial
se pierde para siempre. El mismo problema afecta a una cadena que por
coincidencia se lee como "true" o "null".
Convirtiendo
{"zip":"01234","active":"true","note":null,"id":12345678901234567890}
produce:
zip: '01234'
active: 'true'
note: null
id: 12345678901234567890
Ambas cadenas de valores estan entrecomilladas especificamente porque
dejarlas sin comillas cambiaria su tipo al volver. El null real se
escribe sin comillas, ya que esa es la ortografia correcta sin comillas.
El id de veinte digitos sobrevive intacto, porque esto va a traves del
flujo de tokens en vez de un valor parseado por JSON.parse.
Que acepta el lector y que rechaza
Leyendo YAML de vuelta a JSON, la herramienta entiende un mapping, una secuencia, una cadena entrecomillada, un escalar de bloque, una coleccion de flujo, y un escalar plano plegado. Rechaza anclajes, alias y etiquetas por nombre en vez de ignorarlos silenciosamente, porque YAML no tiene equivalente para aliasing un valor dentro de JSON y pretender lo contrario produciria un documento que solo parece correcto.
Viaje redondo
Convertir el ejemplo de vuelta desde YAML retorna el documento original
exacto: "01234" y "true" como cadenas, null como null, y el entero
completo de veinte digitos. Ese viaje redondo es la prueba real de si las
reglas de comillas de un convertidor son correctas, ya que una regla
incorrecta usualmente solo se muestra una vez que conviertes de vuelta y
comparas.