Como converter JSON para YAML
- Cole o JSON ou abra um arquivo; o YAML aparece enquanto você digita. Escolha indentação de 2 ou 4 espaços.
- Para fazer o caminho inverso, mude a direção para YAML → JSON e cole o YAML.
- Copie o resultado ou baixe-o como arquivo
.yamlou.json.
JSON vs YAML: principais diferenças
| JSON | YAML | |
|---|---|---|
| Estrutura | chaves {} e colchetes [] | indentação e itens de lista com - |
| Strings | sempre entre aspas duplas | aspas só quando necessário |
| Comentários | não permitidos | # comment |
| Texto multilinha | escapes \n | blocos literais com | |
| Uso típico | APIs e troca de dados | arquivos de configuração |
O YAML 1.2 é um superconjunto do JSON, então um documento JSON já é YAML válido. O conversor, porém, gera o estilo de bloco, que é mais legível.
Valores que precisam de aspas no YAML
Algumas palavras sem aspas mudam de tipo no YAML: yes, no, on e off são booleanos em parsers YAML 1.1, 007 e 1e3 são números, e null ou ~ significam null. Esse é o famoso “problema da Noruega”: o código de país NO vira false quando não está entre aspas. O conversor coloca aspas nessas strings automaticamente, para que o YAML seja lido de volta exatamente com os mesmos dados.
YAML suportado na conversão YAML → JSON
O parser entende o YAML usado em arquivos de configuração e APIs: mapeamentos e listas em bloco, strings simples, entre aspas simples ou duplas, blocos multilinha com | e >, coleções inline [ ] e { }, comentários e o marcador de documento ---. Âncoras (&), aliases (*) e tags personalizadas são informadas como não suportadas, com o número da linha. Apenas o primeiro documento de um arquivo com vários documentos é convertido.
Perguntas frequentes
O YAML é um superconjunto do JSON?
O YAML 1.2 foi projetado como um superconjunto do JSON, então praticamente todo arquivo JSON também é YAML válido. O contrário não vale: o YAML tem comentários, âncoras e blocos multilinha que o JSON não tem.
Os comentários são mantidos ao converter YAML para JSON?
Não. O JSON não tem comentários, então eles são descartados. As chaves, os valores e a ordem deles são mantidos.
Por que meu YAML é rejeitado?
As causas mais comuns são tabulações usadas na indentação (o YAML só aceita espaços), itens da mesma lista ou mapeamento que não começam na mesma coluna e a falta de um espaço depois dos dois-pontos. A mensagem de erro indica a linha.
Como os valores YAML são tipados no JSON?
Seguindo o core schema do YAML 1.2: true/false viram booleanos, null e ~ viram null e números simples viram números JSON, enquanto palavras como yes continuam strings. Coloque códigos como "007" entre aspas no seu YAML para mantê-los como texto.