YAML y JSON: que formato de config usar y como convertir

2025-05-20

YAML 1.2 apunta a compatibilidad con JSON: un JSON valido deberia parsearse como YAML. Operaciones suele preferir YAML; aplicaciones suelen preferir JSON. Conviene conocer los riesgos de conversion.

Diferencias clave

JSON: sin comentarios, claves con comillas dobles, forma canonica unica. YAML: indentacion, comentarios con # y escalares mas flexibles.

JSON
{ "server": { "port": 8080 } }
YAML
server:
  port: 8080

Cual usar para config?

Configuraciones operativas editadas a mano (K8s, Docker, CI) -> YAML. Manifiestos generados e intercambio entre apps -> JSON.

Trampas de conversion

yes/no como booleanos, versiones interpretadas como numeros, anchors inexistentes en JSON y tabs ilegales en YAML.

Conversion por CLI

yq, js-yaml, PyYAML: siempre ejecuta JSON.parse tras convertir para detectar cambios silenciosos de tipo.

Consejos practicos para Kubernetes

Mantener YAML en repo; convertir en CI cuando un consumidor solo acepte JSON. No escribas a mano manifiestos JSON enormes.

Resumen

Humanos -> YAML; maquinas -> JSON. Fija versiones de herramientas y valida tras cada transformacion.