100 % local: tus datos nunca salen de tu navegador

YAML a JSON — los IDs largos, exactos

Convierte YAML a JSON. Los enteros grandes conservan todas sus cifras y varios documentos pasan a ser un array, listo para una API o un script.

Instantáneo Privado Cero cookies
Indentación
Invertir: JSON → YAML

Entrada YAML

Salida JSON

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.

Preguntas frecuentes

¿Por qué mi identificador de 20 cifras salía mal?
Porque pasaba por un flotante de doble precisión, que guarda unas quince cifras. `12345678901234567890` salía `12345678901234567000`: otro número, sin nada que te avisara. Al lector de YAML se le puede pedir que conserve exactos los enteros grandes, y ahora se le pide, así que las cifras sobreviven.
¿Qué pasa con mis anclas y alias?
Se resuelven: cada `*alias` se convierte en una copia de lo que su `&ancla` contenía, y se aplican las claves de fusión `<<:`. JSON no tiene forma de expresar que algo se comparte, así que no es una elección: es la única traducción fiel. El resultado es mayor que el YAML, y ese es el coste honesto.
Mi archivo tiene varios documentos. ¿Qué obtengo?
Un array JSON, una entrada por documento. `---` separa documentos YAML y JSON no tiene equivalente; el array es la única forma que los conserva todos. Un archivo con un solo documento te devuelve el objeto, no un array de uno.

Convertidores relacionados