JSON o YAML
En resumen: JSON delimita con llaves y YAML con indentación: las máquinas reciben JSON, las personas que editan configuración reciben YAML. Los comentarios, las anclas y la estructura multidocumento no sobreviven.

En resumen: usa JSON para datos entre máquinas y YAML para configuración que editan personas; prefiere YAML cuando necesites comentarios, texto multilínea o anclas, y JSON cuando todos los lenguajes deban analizar la misma carga útil sin ambigüedad.
Comparación directa
{
"server": {
"host": "127.0.0.1",
"port": 8080
}
}
server:
host: 127.0.0.1
port: 8080
Misma estructura. YAML elimina la puntuación y gana un lugar para un comentario.
En qué se diferencian
| JSON | YAML | |
|---|---|---|
| Estructura | Llaves y comas | Indentación |
| Comentarios | Ninguno | Sí |
| Cadenas | Comillas dobles, escape obligatorio | Normalmente sin comillas |
| Texto multilínea | Secuencias \n o arrays |
Escalares de bloque ` |
| Reutilización | Ninguna | Anclas & y alias * |
| Varios documentos | Envolver en un array | Separadores --- |
| Velocidad de análisis | Rápida | Más lenta, reglas de indentación |
| Ambigüedad | Muy baja | no se analiza como booleano, indentación desfasada |
Esa última fila es el coste real de YAML. En YAML 1.1, country: NO produce el booleano false, y version: 1.0 puede convertirse en un float. JSON no tiene tipado implícito en absoluto.
Elección
JSON: cuerpos de petición y respuesta, mensajes entre servicios, columnas JSON en bases de datos, cualquier cosa que deba analizarse de forma idéntica en todos los lenguajes.
YAML: ecosistemas donde es el valor predeterminado (Kubernetes, Ansible, GitHub Actions, Docker Compose); configuración que necesita explicación; archivos dominados por texto largo como certificados, scripts o SQL.
Qué se pierde en la conversión
YAML → JSON: todos los comentarios, la reutilización por anclas (expandida en duplicados), todos los documentos salvo el primero, y la ortografía original de fechas y booleanos.
JSON → YAML: la distinción entre cadena y número se debilita, así que tanto "8080" como 8080 necesitan comillas explícitas para mantenerse seguros.
Convierte para migraciones e inspecciones puntuales. No mantengas el mismo archivo en dos formatos como vistas paralelas.
FAQ
¿Cómo debo decidir entre JSON y YAML?
Empieza por quién lee y mantiene el archivo: usa JSON cuando lo genera un programa, cruza fronteras de lenguaje y debe analizarse de forma predecible; usa YAML cuando lo edita una persona y necesita explicaciones de campos o texto largo multilínea. Se convierten entre sí, pero no mantengas la misma configuración en ambos formatos a largo plazo.
¿Por qué YAML produce más ambigüedad de tipos?
YAML tiene tipado implícito, así que valores como NO, on o 1.0 pueden convertirse en booleanos, fechas o números. JSON solo tiene tipos explícitos: una cadena debe ir entre comillas, lo que hace que el análisis sea más predecible entre lenguajes.
¿Deberían sobrevivir los comentarios y las anclas al convertir YAML a JSON?
No. Los comentarios, anclas y múltiples documentos de YAML no pueden representarse en JSON; las anclas se expanden en contenido duplicado. Si necesitas conservarlos, usa una biblioteca YAML con una API de documentos en lugar de una ida y vuelta por objetos.