Conversor de JSON a YAML
Convierte JSON a YAML y YAML a JSON.
Acerca de esta herramienta
Pega JSON o YAML y obtén el otro formato. El sentido se detecta automáticamente y los errores de análisis señalan la línea que falla. Útil para manifiestos de Kubernetes, archivos de Docker Compose y configuraciones de CI.
Cómo se usa
- Pega JSON o YAML en el cuadro Entrada.
- Deja el sentido en Detectar, o fuerza JSON a YAML o YAML a JSON.
- Elige 2 o 4 espacios de sangría.
- Copia la salida o haz clic en Usar la salida como entrada para volver a convertirla.
Preguntas
- ¿YAML es un superconjunto de JSON?
- En la práctica, sí: desde YAML 1.2, casi cualquier documento JSON válido también es YAML válido. Al revés no, porque YAML tiene comentarios, anclas y cadenas multilínea que JSON no puede expresar.
- ¿Qué pasa con los comentarios de YAML al convertir a JSON?
- Se eliminan, porque JSON no tiene comentarios. Mantén el archivo YAML como fuente de referencia si los comentarios importan.
- ¿Puedo convertir un archivo con varios documentos YAML separados por ---?
- Sí. Cada documento se convierte en un elemento de un array JSON, y la línea de estado indica cuántos documentos se encontraron.
- ¿Por qué “no” se convierte en false?
- Los analizadores antiguos de YAML 1.1 tratan palabras como yes, no, on y off como booleanos. Esta herramienta usa las reglas de YAML 1.2, donde solo true y false son booleanos, pero pon esos valores entre comillas si otras herramientas van a leer el archivo.
- ¿Las fechas de YAML se convierten en fechas de JSON?
- JSON no tiene tipo fecha, así que valores como 2026-01-12 o 2026-01-12T10:00:00Z se quedan como cadenas normales, que es lo que esperan la mayoría de los programas. Algunos parsers de YAML 1.1, como PyYAML, convierten esos mismos valores en objetos de fecha, así que el resultado de cargar el archivo puede variar entre herramientas.
- ¿Por qué un modo de archivo como 0755 se convierte en 755?
- Según las reglas de YAML 1.2, un cero inicial no significa octal, así que 0755 es el número decimal 755. El octal necesita el prefijo 0o: 0o755 se convierte en 493. Las herramientas antiguas de YAML 1.1 leen 0755 como octal, así que pon los modos de archivo entre comillas, como en mode: "0755", siempre que importe qué herramienta va a leer el archivo.
- ¿Por qué algunas cadenas salen entre comillas en el YAML?
- Las cadenas que al volver a leerse se interpretarían como otro tipo se ponen entre comillas, para que el valor sobreviva a la conversión de ida y vuelta. La cadena JSON "true" se convierte en "true" en YAML, no en el booleano true, y lo mismo ocurre con "123", "null", "1.10" y el texto que contiene dos puntos seguidos de un espacio. Las cadenas normales se quedan sin comillas.
JSON vs YAML: cuándo usar cada uno
JSON y YAML describen los mismos datos: objetos, arrays, cadenas, números, booleanos y null. JSON es estricto y rápido de parsear, por lo que es la opción por defecto para API, package.json y datos que se pasan entre programas. YAML está pensado para personas que editan archivos a mano: pocas llaves o comillas, comentarios con # y cadenas multilínea. Por eso los manifiestos de Kubernetes, los archivos de Docker Compose, los workflows de GitHub Actions y los playbooks de Ansible se escriben en YAML.
Una regla práctica: cuando un programa escribe un archivo y otro programa lo lee, usa JSON. Cuando lo mantiene una persona, YAML es más fácil de leer y revisar. Muchas herramientas aceptan ambos, y kubectl apply admite cualquiera de los dos formatos. Un conversor de JSON a YAML resulta útil cuando una CLI o una API te da JSON, por ejemplo kubectl get deployment web -o json, y quieres una copia legible en YAML para guardarla en Git.
Cómo solucionar errores de sangría y de parseo en YAML
YAML usa la sangría para indicar la estructura, así que la mayoría de los errores de parseo son problemas de espacios en blanco. Las tabulaciones no se permiten en la sangría, y el parser indica “Tabs are not allowed as indentation”. Los elementos de una misma lista y las claves de un mismo mapa deben empezar en la misma columna, y un valor anidado debe tener más sangría que su clave. El error indica la línea y la columna donde se detuvo el análisis, que suele coincidir con el error real o estar justo después.
Dos puntos seguidos de un espacio dentro de un valor sin comillas es otro error clásico de YAML. url: http://example.com funciona, pero title: Note: read this falla, porque los segundos dos puntos inician un mapa anidado. Pon esos valores entre comillas, como en title: "Note: read this". Los valores que empiezan por @ o por una comilla invertida también necesitan comillas, igual que las cadenas que parecen números, como version: "1.10", que de lo contrario se convertiría en el número 1.1.
¿Qué pasa con las anclas de YAML al convertir a JSON?
YAML te permite definir un bloque una vez con un ancla como &defaults y reutilizarlo en otro sitio con el alias *defaults. JSON no tiene equivalente, así que al convertir YAML a JSON cada alias se sustituye por una copia completa del valor anclado. El JSON es correcto pero más largo, y se pierde el vínculo entre las copias. Las merge keys escritas como <<: *defaults no forman parte de YAML 1.2 y se quedan en el JSON como una clave llamada <<.
Antes de hacer commit de un archivo convertido, comprueba la conversión de ida y vuelta. Haz clic en Usar la salida como entrada para volver a convertir el resultado y compáralo con el original en Diff de textos. Los valores deberían mantenerse intactos, aunque la presentación puede cambiar: los comentarios desaparecen, las anclas se expanden y las comillas pueden variar. Kubernetes y la mayoría de las guías de estilo de YAML usan una sangría de 2 espacios, que es la predeterminada aquí, y hay 4 espacios disponibles para los equipos que lo prefieran.
¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta