Qué hace esta herramienta
YAML es un superconjunto de JSON, así que casi toda la conversión transcurre sin historia: los mapas pasan a objetos, las secuencias a arrays, los escalares a cadenas, números, booleanos o null.
Lo que sigue es donde deja de ser sin historia.
Los identificadores largos conservan sus cifras
id: 12345678901234567890
{ "id": 12345678901234567890 }
Parece poco llamativo, y esa es la idea. Un número JSON es un flotante de doble precisión y guarda unas quince cifras; un identificador de veinte —un snowflake de Twitter, un bigint de PostgreSQL— antes salía como otro número, en silencio. Ahora las cifras se leen exactas y se escriben sin cambios.
Las anclas se despliegan, porque JSON no puede sostenerlas
defaults: &d
retries: 3
web:
<<: *d
se convierte en dos copias de retries: 3. JSON no tiene la noción de un valor presente en dos sitios, así que el compartir no sobrevive al cruce. La salida es mayor que la entrada y nada se pierde, pero la relación sí, y conviene saberlo antes de convertir un archivo construido con anclas y volver a convertirlo.
Varios documentos dan un array
--- separa documentos. JSON no tiene separador, así que un flujo de tres documentos da un array de tres valores. Un documento único no se envuelve: obtienes el objeto.
Los nulos, los tres
~, null y un valor vacío significan null en YAML, y los tres pasan a null. Es uno de los pocos sitios donde JSON es más simple que YAML, y no al revés.
Lo que esta conversión no puede decidir por ti
yes se lee como la cadena "yes", porque eso dice YAML 1.2. Un archivo escrito para PyYAML, que aplica YAML 1.1, quería decir el booleano verdadero.
Nada en el archivo dice qué versión tenía en mente su autor. Si tu YAML viene de una herramienta Python y un yes, no u on desnudo importa, entrecomíllalo en el origen — y ten presente que la ambigüedad está en el archivo, no en el conversor.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.