Guía de la herramienta
Acerca de Conversor de JSON a YAML
Este conversor transforma JSON en YAML y YAML de vuelta en JSON, de modo que la misma configuración puede pasar de un payload de API a un manifiesto de Kubernetes, un archivo de Docker Compose, un workflow de GitHub Actions o un documento OpenAPI sin volver a teclearla.
La conversión se ejecuta mientras escribes, el orden de las claves se conserva tal como se escribió y la indentación puede fijarse en 2 o 4 espacios. Los errores de sintaxis indican la línea y la columna exactas.
Cómo convertir JSON to YAML
- Pega tu JSON en el panel de entrada. El resultado YAML aparece de inmediato, sin ningún botón que pulsar.
- Usa el botón de dirección para pasar a YAML a JSON, por ejemplo para alimentar un manifiesto a un script que solo lee JSON.
- Elige indentación de 2 o 4 espacios según el estilo de tu repositorio. Los archivos de Kubernetes y GitHub Actions suelen usar 2.
- Si la entrada no es válida, lee la línea y la columna reportadas, corrige ese punto y la salida se actualiza sola.
Cuándo conviene usarlo
- Convertir un recurso JSON volcado por kubectl en un manifiesto YAML legible que puedas versionar.
- Convertir un bloque de servicio de Docker Compose mientras pruebas configuración generada.
- Mover una especificación OpenAPI entre sus formas JSON y YAML, ya que las herramientas de cada lado prefieren una u otra.
- Reescribir en el YAML que espera el runner un fragmento de workflow de GitHub Actions producido como JSON.
Reglas de YAML que rompen las conversiones
YAML 1.2 es casi un superconjunto de JSON, así que un JSON válido suele ser YAML válido. Los problemas aparecen en la dirección contraria, donde YAML adivina tipos que JSON nunca deduce.
- El Norway problem: NO, no, yes, on y off son leídos como booleanos por los analizadores de YAML 1.1, de modo que el código de país NO se convierte en false. Entrecomilla esos valores.
- Ceros a la izquierda: un valor como 010 puede leerse como número octal en lugar de como cadena. Entrecomilla identificadores, códigos postales y números de pieza.
- Números de versión: un 1.10 sin comillas se convierte en el número decimal 1.1 y el cero final desaparece.
- La indentación debe usar espacios, nunca un tabulador, y cada dos puntos que introduce un valor necesita un espacio después.
Preguntas frecuentes sobre JSON a YAML
- ¿El conversor reordena mis claves?
- No. Las claves salen en el orden en que las proporcionaste, lo que mantiene pequeñas las diferencias en el control de versiones.
- ¿Qué pasa con mis comentarios?
- JSON no tiene sintaxis de comentarios, así que la conversión de JSON a YAML no puede inventarlos, y la de YAML a JSON descarta los que tenía el origen. Conserva el archivo original si los comentarios importan.
- ¿La salida contendrá anclas y alias?
- No. Las estructuras repetidas se escriben completas, de modo que cualquier analizador puede leer el resultado sin soporte de alias.
- ¿Mi configuración se sube a algún lado?
- No. El análisis y la conversión ocurren en tu navegador usando js-yaml, así que nada de lo que pegas sale de tu máquina ni queda almacenado por wetool.site.
- ¿Por qué un valor de YAML cambia de tipo tras la conversión?
- YAML adivina tipos para los escalares sin comillas. Entrecomilla el valor en el origen YAML y se convertirá en una cadena JSON.
JSON comparado con YAML
JSON es estricto y sin ambigüedades, lo que lo hace un buen formato de transporte, pero no admite comentarios y se vuelve ruidoso cuando hay mucho anidamiento. YAML se lee mejor en una revisión, a cambio de adivinar tipos y ser sensible a la indentación. La mayoría de los equipos guardan la configuración en YAML e intercambian JSON en las fronteras, y para eso sirve esta conversión en dos sentidos.
Lista de comprobación de comillas antes de confirmar cambios
La mayoría de los despliegues rotos por una conversión vienen de un valor que perdió su tipo. Repasa la salida YAML buscando estos casos.
- Códigos de país e idioma, sobre todo NO, y cualquier valor de dos letras que se lea como una palabra.
- Números que en realidad son identificadores: números de cuenta, puertos rellenados con ceros, cualquier cosa con un cero inicial.
- Versiones y etiquetas de imagen como 1.10 o 3.20, que pierden el cero final al tratarse como números decimales.