Converter YAML para JSON (e evitar erros de indentação)

Desde o YAML 1.2, todo documento JSON é um YAML válido. Converta configurações YAML para JSON e fique atento às armadilhas de indentação e inferência de tipo.

YAML e JSON são parentes

YAML 1.2 é um superconjunto estrito de JSON, então qualquer documento JSON já é YAML válido. Converter YAML em JSON é basicamente traduzir uma estrutura baseada em indentação para chaves e colchetes.

Regras de indentação

YAML proíbe tabs na indentação — use espaços e mantenha as chaves irmãs na mesma profundidade. Um tab perdido ou uma chave desalinhada é o erro de parsing de YAML mais comum.

O problema norueguês

Sem aspas, NO, yes, on e off podem ser lidos como booleanos por alguns parsers, e o código do país NO acaba virando false. Coloque esses valores entre aspas para forçá-los a continuarem como strings.

Converter com segurança

Valide o YAML primeiro e converta depois. Coloque escalares ambíguos entre aspas e confirme que números, datas e valores com zero à esquerda mantêm o tipo esperado.

Streams YAML com múltiplos documentos

Um único arquivo YAML pode conter vários documentos separados por '---'. JSON não tem equivalente — converta cada documento separadamente e, se a ferramenta downstream precisar de todos juntos, envolva-os num array JSON. Manifestos do Kubernetes são o caso mais comum.

Anchors e aliases

O & anchor e o * alias do YAML permitem reutilizar um nó por referência, mas JSON não tem aliases. Um conversor seguro resolve cada alias para uma cópia do valor ancorado, o que expande o documento. Atenção: voltar para YAML perde o compartilhamento original.

Quando YAML perde fidelidade

Comentários, anotações de tag como !!binary, tags personalizados, a diferença entre estilo block e flow e a ordem das chaves se perdem quando YAML vira JSON. Para puro intercâmbio de dados, tudo bem; para configuração editada por humanos que será reeditada, trate o YAML como fonte da verdade.