Utilia

Convertidor de JSON a YAML

Convierte JSON a YAML y YAML a JSON en tu navegador, con soporte de anclas, claves de fusión y archivos con varios documentos. No se sube nada.

Conversión

Cómo usar el convertidor de JSON a YAML

  1. Elige la dirección: JSON → YAML o YAML → JSON.
  2. Pega tus datos o haz clic en Abrir un archivo para cargar un archivo .json, .yaml o .yml (hasta 10 MB).
  3. Elige la Indentación (2 o 4 espacios) y, si quieres, Ordenar las claves alfabéticamente.
  4. Haz clic en Convertir o simplemente sigue escribiendo: el resultado se actualiza solo. Si la entrada no es válida, el mensaje de error indica la línea y la columna del problema.
  5. Copia o descarga el resultado. Invertir la dirección pasa el resultado a la entrada para convertirlo en sentido contrario.

JSON y YAML: los mismos datos, otra sintaxis

En la práctica, YAML es un superconjunto de JSON: todo documento JSON describe datos que YAML puede expresar, y YAML añade una sintaxis más ligera, más fácil de leer y editar para las personas. Por eso los manifiestos de Kubernetes, los archivos de Docker Compose, GitHub Actions y los pipelines de GitLab CI, los playbooks de Ansible y las especificaciones OpenAPI suelen escribirse en YAML, mientras que las API y los programas intercambian JSON.

Los mismos datos en los dos formatos:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

JSON → YAML

El convertidor escribe YAML en estilo de bloque: una clave por línea, listas con guiones y objetos anidados indentados. Las cadenas largas nunca se pliegan, y las cadenas de varias líneas usan el estilo literal | para conservar exactamente los saltos de línea. Las cadenas que YAML leería como otro tipo se entrecomillan: "yes", "1.0" o "null" siguen siendo cadenas tras la ida y vuelta. Ordenar las claves ordena alfabéticamente las claves de cada objeto, lo que facilita comparar dos archivos de configuración.

YAML → JSON

El YAML se lee con el esquema core de YAML 1.2, las mismas reglas que usan la mayoría de las herramientas modernas:

  • true/false, los números y null (o ~) se convierten en valores JSON; yes, no, on y off se quedan como cadenas, como exige la especificación YAML 1.2.
  • Las anclas y los alias (&base, *base) se expanden, y se admiten las claves de fusión (<<: *base), habituales en los archivos de CI.
  • Un archivo con varios documentos separados por --- se convierte en un array JSON con un elemento por documento, y un mensaje indica cuántos se han combinado.
  • Los comentarios se descartan, ya que JSON no tiene comentarios.
  • .inf y .nan no tienen equivalente en JSON; se escriben como las cadenas "Infinity" y "NaN".

Para proteger tu navegador de los archivos «billion laughs», en los que unos pocos alias se expanden en miles de millones de valores, se rechaza cualquier documento que se expanda a más de un millón de valores.

Errores de YAML habituales

  • Tabulaciones para indentar: YAML solo admite espacios.
  • Indentación incoherente: los elementos de una misma lista u objeto deben empezar en la misma columna.
  • Falta el espacio después de los dos puntos: clave:valor es una sola cadena, mientras que clave: valor es un par clave-valor.
  • Caracteres especiales sin comillas: un valor que empieza por @, una comilla invertida, *, & o !, o que contiene : o #, debe ir entre comillas.

Preguntas frecuentes

¿Se envía mi archivo a un servidor?

No. La conversión se ejecuta en tu navegador, y tus archivos de configuración, secretos o datos de API nunca salen de tu ordenador.

¿Por qué «yes» y «no» no se convierten en booleanos?

Desde YAML 1.2, solo true y false son booleanos. Los analizadores antiguos de YAML 1.1 trataban yes, no, on y off como booleanos, lo que causó el famoso «problema de Noruega» (el código de país NO leído como falso). Esta herramienta sigue YAML 1.2.

¿Se conservan los comentarios de YAML?

No. JSON no tiene comentarios, así que se pierden en YAML → JSON. Al convertir JSON → YAML, puedes añadir comentarios al resultado después.

¿Puedo convertir un archivo de Kubernetes con varios recursos?

Sí. Cada recurso separado por --- se convierte en un elemento de un array JSON. Al volver a convertir ese array a YAML se obtiene un único documento que contiene una lista.

¿El convertidor cambia el orden de las claves?

No, salvo que marques Ordenar las claves: las claves mantienen el orden en que aparecen en tu entrada. La única excepción viene del propio JavaScript: las claves que son números enteros, como "10" o "2", se colocan primero, en orden ascendente.