tigtools

Conversor JSON ⇄ YAML

Cambia la dirección, pega tus datos y obtén el resultado convertido al instante. Ideal para manifiestos de Kubernetes, pipelines de CI y configuraciones de aplicaciones.

Se ejecuta en tu navegador Sin registro

Dirección
Sangría

Cómo usarla

  1. Elige la dirección: JSON → YAML o YAML → JSON.
  2. Pega tus datos o pulsa «Probar un ejemplo». El resultado se actualiza mientras escribes.
  3. Elige una sangría de 2 o 4 espacios para el resultado.
  4. Copia o descarga el resultado. «Usar el resultado como entrada» cambia la dirección para que puedas convertirlo de nuevo.

Cómo funciona

La conversión utiliza la biblioteca de código abierto yaml (versión 2), que implementa la especificación YAML 1.2. Para fines prácticos, YAML 1.2 es un superconjunto de JSON, así que cualquier documento JSON se convierte a YAML sin pérdida, y el YAML que solo utiliza mapas, listas, cadenas, números, valores booleanos y null vuelve a convertirse en un JSON idéntico.

Al escribir YAML, la herramienta pone entre comillas las cadenas que podrían interpretarse como otra cosa. Los analizadores YAML 1.1 antiguos, como PyYAML y muchas herramientas de CI, interpretan yes, no, on y off como valores booleanos, 0777 como un número octal y 2024-01-31 como una fecha, por lo que se escriben como "yes", "0777" y "2024-01-31". Las cadenas largas no se dividen en varias líneas. Los comentarios no se pueden conservar porque JSON no admite comentarios.

Al leer YAML, las anclas (&name) y los alias (*name) se expanden, incluida la clave de combinación <<, y un archivo con varios documentos separados por --- se convierte en una matriz JSON. Para proteger el navegador, la expansión de alias está limitada, lo que evita documentos del tipo «bomba de mil millones de risas». Los valores YAML sin equivalente en JSON se convierten de la forma más aproximada posible: .inf y .nan se convierten en null, y las marcas de tiempo se mantienen como cadenas. Los errores de sintaxis se indican con su línea y columna.

Ejemplos

Manifiesto de Kubernetes

Un script convierte un Deployment escrito en JSON al formato YAML que esperan los usuarios de kubectl, con las listas bajo containers escritas como - name: web. Los valores como "no" siguen entre comillas para que se mantengan como cadenas.

Configuración de CI con anclas

Un archivo de pipeline define valores predeterminados con &defaults y los reutiliza con <<: *defaults. Al convertirlo a JSON, puedes ver exactamente qué claves obtiene cada tarea después de la combinación.

Especificación OpenAPI

Un archivo OpenAPI se mantiene en YAML, pero un generador de código necesita JSON. Pega el YAML, elige una sangría de 2 espacios y descarga el archivo .json.

Preguntas frecuentes

¿Por qué "yes" aparece entre comillas en mi YAML?

Según las reglas de YAML 1.1, que todavía utilizan PyYAML, Ansible y muchas otras herramientas, yes, no, on u off sin comillas es un valor booleano. Ponerlo entre comillas hace que sea una cadena en cualquier analizador. Las comillas no forman parte del valor.

¿Se conservan los comentarios de YAML al convertirlo a JSON?

No. JSON no tiene una sintaxis para comentarios, así que se descartan. Al volver a convertir el JSON a YAML, no se recuperarán.

¿Qué ocurre con varios documentos YAML separados por ---?

Se convierten en una única matriz JSON con un elemento por documento y en el mismo orden. Si hay un solo documento, se convierte directamente en su valor.

¿Qué ocurre con las etiquetas personalizadas, como !Ref de CloudFormation?

No se reconocen las etiquetas específicas de una aplicación. La herramienta muestra una advertencia y convierte el valor etiquetado como un valor simple, por lo que !Ref MyBucket se convierte en la cadena "MyBucket" y la etiqueta se pierde.

Privacidad

La conversión en ambas direcciones se realiza íntegramente en tu navegador. Tu JSON o YAML no se sube, almacena ni incluye en los análisis.