YAML e JSON: qual formato de config usar e como converter

2025-05-20

YAML 1.2 busca compatibilidade com JSON: um JSON valido deve ser parseado como YAML. Operacoes costuma preferir YAML; apps costumam preferir JSON. Conheca os riscos de conversao.

Diferencas centrais

JSON: sem comentarios, chaves com aspas duplas, forma canonica unica. YAML: indentacao, comentarios com # e escalares mais flexiveis.

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

Qual usar para config?

Config operacional editada manualmente (K8s, Docker, CI) -> YAML. Manifestos gerados e intercambio entre apps -> JSON.

Armadilhas de conversao

yes/no virando booleano, versoes interpretadas como numero, anchors inexistentes em JSON e tabulacao invalida em YAML.

Conversao via CLI

yq, js-yaml, PyYAML: sempre rode JSON.parse apos converter para detectar mudancas silenciosas de tipo.

Dicas praticas para Kubernetes

Mantenha YAML no repositorio; converta no CI quando um consumidor aceitar apenas JSON. Nao escreva manifests JSON enormes na mao.

Resumo

Humanos -> YAML; maquinas -> JSON. Fixe versoes de ferramentas e valide apos cada transformacao.