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.
{ "server": { "port": 8080 } }server:
port: 8080Qual 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.