Conversor de JSON para YAML

Transforme JSON em YAML limpo e fácil de ler para Kubernetes, Docker Compose, GitHub Actions ou Ansible, com controle total sobre indentação, estilo e aspas.

Roda no seu navegadorSem cadastroNada é enviado

Saída JSON

Como usar: JSON para YAML

  1. Cole o JSON na caixa da esquerda ou abra um arquivo .json.
  2. O YAML aparece à direita enquanto você digita.
  3. Escolha a indentação (2 ou 4 espaços) e o estilo: block (uma chave por linha) ou flow ({a: 1}/[x, y]) a partir de um nível de aninhamento.
  4. Escolha um estilo de aspas e marque Ordenar chaves se quiser ordem alfabética.
  5. Copie ou baixe o YAML. JSON inválido é reportado com a linha, a coluna e a causa provável.

Por que converter JSON para YAML?

JSON é ideal para máquinas e APIs, mas YAML é mais fácil para pessoas lerem e editarem: sem chaves, sem aspas obrigatórias e com suporte a comentários. A maioria das ferramentas de infraestrutura, incluindo Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI e Ansible, é configurada em YAML, enquanto os dados de partida (saída de API, kubectl get -o json, estado do Terraform) costumam estar em JSON.

Estilo block vs. flow

O estilo block coloca cada chave e item de lista em sua própria linha e é a escolha convencional para arquivos de configuração. O estilo flow usa {} e [] inline, como no JSON, e deixa estruturas pequenas nas folhas compactas. “Flow a partir do nível 2” mantém os dois níveis de cima em estilo block e coloca inline tudo o que for mais profundo, o que funciona bem para listas longas de objetos pequenos, como portas ou variáveis de ambiente.

Aspas seguras

Strings que um parser YAML poderia interpretar errado ficam entre aspas automaticamente: valores como 'no', 'on', '1.0', 'null', strings que começam com * ou & e strings que contêm : . Escolha Sempre simples ou Sempre duplas se o seu guia de estilo exigir que toda string fique entre aspas.

Pegadinhas do YAML 1.1 vs 1.2

Este conversor segue o YAML 1.2, a especificação atual. Muitas ferramentas mais antigas (PyYAML, o Psych do Ruby, algumas versões do Kubernetes e do Ansible) ainda leem YAML 1.1, em que as regras são diferentes:

  • O problema da Noruega: no YAML 1.1, country: no significa false, então o código de país da Noruega, NO, desaparece. O mesmo vale para yes, on, off, y e n. O YAML 1.2 só trata true e false como booleanos.
  • Números octais: 0755 é octal no 1.1, mas um decimal comum no 1.2, que usa 0o755. Coloque permissões de arquivo entre aspas por segurança.
  • Números sexagesimais: no 1.1, 22:30 pode ser interpretado como o número 1350. Coloque entre aspas horários e mapeamentos de portas como "8080:80".

A conversão JSON → YAML coloca strings ambíguas ('no', 'on', 'y') entre aspas automaticamente, então o YAML gerado é lido da mesma forma nas duas versões.

Perguntas frequentes

A conversão é sem perdas?
Sim. Todo documento JSON é YAML 1.2 válido, e o YAML gerado é lido de volta exatamente com os mesmos dados. Você pode conferir clicando em Inverter.
Por que algumas strings ficam entre aspas e outras não?
Com Só quando necessário, as aspas são adicionadas apenas onde um valor sem aspas mudaria de significado, por exemplo 'yes', '123' ou strings com caracteres especiais. Todo o resto fica sem aspas para facilitar a leitura.
Posso adicionar comentários à saída?
O JSON não tem comentários, então não há nada para converter, mas você pode adicionar # comments ao YAML depois de copiá-lo.
A ordem das chaves muda?
Não. As chaves mantêm a ordem do JSON, a menos que você marque Ordenar chaves.
Meus dados ficam privados?
Sim. O conversor roda no seu navegador e não faz nenhuma requisição de rede com a sua entrada.

Ferramentas relacionadas