Saltar al contenido

JSON a YAML y de vuelta

JSON ⇄ YAML

Convierte en ambos sentidos conservando el orden de las claves, con estilo de bloque o de flujo para el lado YAML.

Convierte entre YAML, JSON y TOML en cualquier dirección, en el navegador. Los parsers están escritos para este sitio en lugar de traídos de npm, y por eso la página puede listar exactamente lo que rechaza —anclas, etiquetas, flujos de varios documentos— en lugar de leerlos mal en silencio.

🔒 Se ejecuta por completo en tu navegadorjsonyamlconvert
Desde
Se está leyendo como YAML.
Hacia

Entrada

Suelta un archivo .yaml, .json o .toml

Se lee en esta pestaña. No se sube nada.

JSON de salida

Están escritos aquí y no traídos de npm, lo que significa que el subconjunto está elegido y no heredado. Todo lo que aparece en esta lista se rechaza por su nombre en lugar de leerse mal.

Cómo se usa

  1. Pega la configuración

    El formato se detecta a partir del texto, y la etiqueta bajo el selector dice por cuál se decidió. Corrígelo si la suposición es incorrecta: un archivo JSON también es YAML válido, así que un documento `{ }` puede ir por cualquiera de los dos lados.

  2. Elige el destino

    YAML para un manifiesto de Kubernetes o un archivo de CI, JSON para cualquier cosa que vaya a analizar un programa, TOML para un archivo de proyecto de Rust o Python.

  3. Lee las advertencias, no solo la salida

    Una conversión que tuvo éxito puede haber cambiado el significado igualmente: un `null` que se perdió al pasar a TOML, un `yes` leído como la cadena que es bajo YAML 1.2. Eso aparece en una nota bajo la salida en lugar de quedar oculto.

  4. Abre la lista de alcance cuando algo se rechace

    La sección plegada al final nombra cada construcción que estos parsers no manejan, y por qué. Un rechazo apunta a esa lista en lugar de fallar con un error de parser que tendrías que interpretar.

Preguntas frecuentes

¿Por qué se rechazan mis anclas y alias?

Porque expandir `*base` correctamente significa implementar la semántica de fusión de YAML, y equivocarse sutilmente produce un archivo que parece correcto y despliega otra cosa. Expandirlos a mano antes de pegar es fiable; adivinarlo aquí no lo es. La misma razón cubre `<<: *base`.

¿Por qué `yes` se convirtió en una cadena?

Porque el esquema core de YAML 1.2 dice que lo es: solo `true` y `false` son booleanos. Los parsers de YAML 1.1, incluidos algunos que siguen en producción, lo leen como booleano. La diferencia se anuncia en las advertencias cuando ocurre, porque es exactamente el tipo de cosa que cambia un despliegue.

¿Qué pasa con un `null` de camino a TOML?

Se elimina y una advertencia lo dice. TOML no tiene ningún valor nulo, así que las opciones eran omitir la clave o inventar un marcador, e inventar uno pondría una cadena literal `"null"` en la configuración de alguien.

¿Se conservan los comentarios?

No. La conversión pasa por un modelo de datos, y los comentarios no son datos: JSON no tiene ningún sitio donde ponerlos. Si necesitas los comentarios, los formateadores de YAML y TOML de este sitio reindentan en el sitio y los conservan.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.