Skip to content
Latchkey

YAML vs JSON: qual formato de config?

YAML é um formato de configuração amigável a humanos que suporta comentários e anchors; JSON é um formato de troca de dados estrito e ubíquo sem comentários.

YAML usa indentação e suporta comentários, anchors e strings multilinha, o que o torna popular para configuração (workflows de CI, Kubernetes, Compose). JSON é mais estrito, não tem comentários e é a língua franca para APIs e troca entre máquinas. YAML favorece a autoria humana; JSON favorece parsing inequívoco por máquina. Note que YAML é um superset de JSON, então JSON é YAML válido.

YAMLJSON
LegibilidadeAlta (indentação)Moderada (chaves)
ComentáriosSimNão
ReusoAnchors / aliasesNenhum
RigorMais frouxo, armadilhasEstrito, previsível
Melhor paraConfig, workflows de CIAPIs, troca de dados

Caso de uso e armadilhas

YAML combina com configuração editada à mão onde comentários e estrutura ajudam a legibilidade, mas fique atento às armadilhas: espaço em branco significativo, o problema da Noruega (no parseado como false) e erros de tab. JSON combina com payloads de API e dados gerados onde rigor e parsing universal importam. Muitas ferramentas aceitam ambos.

No CI

Faça lint do YAML (yamllint) e valide contra schemas para pegar armadilhas de indentação e tipo cedo; JSON valida contra JSON Schema. Ambos rodam em managed runners, onde runners mais rápidos encurtam os passos de lint e validação de schema.

O veredito

Configuração escrita por humanos com comentários e reuso: YAML, ficando atento a armadilhas de espaço em branco e tipagem. Troca entre máquinas e payloads de API que precisam de parsing estrito e inequívoco: JSON. Config tende ao YAML; troca de dados tende ao JSON.

Guias relacionados