Cuándo el YAML debe convertirse en JSON
El YAML es el idioma de la configuración: Kubernetes, Docker Compose, GitHub Actions, especificaciones OpenAPI e innumerables ajustes de aplicaciones. Es cómodo de escribir, pero es fácil cometer errores de sangría y muchas herramientas, validadores y API solo aceptan JSON.
Este conversor analiza el YAML con la biblioteca yaml según la especificación YAML 1.2, resuelve anclas y alias y escribe un JSON con sangría. Si el archivo contiene varios documentos separados por ---, obtienes un array JSON con un elemento por documento.
YAML frente a JSON: comparación rápida
| Característica | YAML | JSON |
|---|---|---|
| Nombre completo | YAML Ain't Markup Language | JavaScript Object Notation |
| Tipo | Datos jerárquicos | Datos jerárquicos |
| Año de creación | 2001 | Principios de los 2000 (RFC 4627 en 2006) |
| Creado por | Clark Evans, Ingy döt Net y Oren Ben-Kiki | Douglas Crockford; hoy ECMA-404 y RFC 8259 |
| Estructura | Mapas y listas anidados por sangría | Objetos y arrays anidados |
| Comentarios | Sí, con # | No |
| Tipos de datos | Cadenas, números, booleanos, null, fechas, listas, mapas | Cadena, número, booleano, null, objeto, array |
| Ideal para | Configuración de Kubernetes, pipelines de CI y Docker Compose | APIs, aplicaciones web y ajustes de apps |
| Compatibilidad | La mayoría de lenguajes mediante librerías | Todos los lenguajes de programación |
| Tipo MIME | application/yaml | application/json |
Cómo convertir YAML a JSON
Paso 1: Selecciona un archivo .yaml o .yml
Suelta el archivo de configuración o de especificación en el conversor.
Paso 2: Mantén JSON como destino
JSON está preseleccionado.
Paso 3: Convierte
El YAML se analiza; los errores de sintaxis se indican con un mensaje en lugar de producir un resultado roto.
Paso 4: Descarga el JSON
Úsalo con validadores, API o código JavaScript.
Funciones de YAML compatibles
Varios documentos
Los archivos con separadores --- se convierten en un array JSON.
Anclas y alias
Las referencias &ancla y *alias se expanden a valores completos.
Tipos de YAML 1.2
Valores como yes, no y on siguen siendo cadenas, evitando las sorpresas clásicas de YAML 1.1.
.yml y .yaml
Se reconocen ambas extensiones.
Conversiones de YAML a JSON habituales
OpenAPI y Swagger. Algunas herramientas solo importan la versión JSON de una especificación de API.
Depuración en Kubernetes. Inspecciona manifiestos con herramientas JSON como jq.
Validación de esquemas. Los validadores de JSON Schema suelen esperar JSON.
Configuración de aplicaciones. Carga ajustes en entornos sin analizador de YAML.
Qué se pierde en la traducción
El JSON no tiene comentarios, así que los del YAML desaparecen. Las anclas y los alias se expanden, lo que puede alargar el JSON si el YAML reutilizaba bloques grandes. El orden de las claves se conserva.
Las etiquetas personalizadas como !Ref o !GetAtt, que usa AWS CloudFormation, no son YAML estándar y pueden generar advertencias o convertirse como valores simples. Convierte las plantillas de CloudFormation con las herramientas de AWS cuando esas etiquetas importen.
YAML 1.2 frente a 1.1
Los analizadores antiguos seguían YAML 1.1, donde yes, no, on y off significaban verdadero o falso y valores como 0755 eran números octales. Este conversor sigue YAML 1.2, donde esas palabras siguen siendo cadenas salvo que se escriban true o false. Es más seguro, pero puede diferir de lo que producía una herramienta antigua.
Las fechas escritas sin comillas se mantienen como cadenas en el JSON, lo que evita sorpresas con las zonas horarias.
- country: NO sigue siendo "NO" (se evita el problema de Noruega).
- enabled: true pasa a true.
- mode: 0755 sigue siendo un número en YAML 1.2: 755.
Consejos para YAML a JSON
- Usa espacios, nunca tabulaciones, para la sangría del YAML.
- Pon entre comillas las cadenas que contengan dos puntos seguidos de un espacio.
- Revisa las salidas con varios documentos: son un array aunque esperaras un objeto.
- Vuelve a convertir con JSON a YAML después de editar, si lo necesitas.
Preguntas sobre la conversión de YAML a JSON
¿Admite archivos con varios documentos?
Sí. Cada documento separado por --- se convierte en un elemento de un array JSON.
¿Se conservan los comentarios?
No. El JSON no tiene sintaxis de comentarios, así que se eliminan.
¿Qué versión de YAML se usa?
YAML 1.2, la especificación actual, así que yes y no siguen siendo cadenas.
¿Qué pasa con las anclas y los alias?
Se resuelven y los valores referenciados se copian en su lugar.
¿Por qué ha fallado mi conversión?
Normalmente por un error de sangría o un carácter de tabulación. El mensaje de error señala el problema.
¿Se sube el archivo?
No. El análisis se ejecuta en tu navegador.