Conversor de JSON para YAML

Converta JSON em YAML direto no navegador. 100% client-side, sem upload, sem cadastro. Preserva a ordem das chaves e indica erros de parse por linha. Compatível com formatos de configuração do OpenAPI e do Kubernetes.

Processamento privado no navegador
JSON de entradaJSON
Os erros do parser de JSON incluem a linha aproximada.
5 lines · 85 bytes
YAML de saídaYAML
Nenhuma ação executada ainda.
0 lines · 0 bytes

Sobre o conversor de JSON para YAML

Casos de uso comuns para JSON para YAML

A conversão de JSON para YAML é mais útil ao trabalhar com ferramentas orientadas a configuração, como manifestos do Kubernetes, arquivos do Docker Compose, workflows do GitHub Actions, playbooks do Ansible e values de charts do Helm. As respostas de API costumam vir em JSON, mas a maioria das ferramentas de infraestrutura modernas espera YAML para configurações editadas por pessoas. Colando o JSON aqui, você obtém um YAML pronto para commit sem sair do navegador.

Exemplo de conversão (entrada e saída)

Entrada: { "name": "formatarc", "features": ["json", "yaml"] }. Saída: name: formatarc com features listadas em um bloco indentado. As chaves ( {} ) e as aspas nas chaves desaparecem, os arrays e os objetos aninhados passam a usar indentação, e o resultado fica bem mais fácil de ler do que o JSON de origem em uma revisão humana.

Principais diferenças de sintaxe em relação ao JSON

O YAML usa indentação em vez de chaves, e os valores de string normalmente não precisam de aspas. O YAML aceita comentários com #, enquanto o JSON não tem sintaxe de comentário — quaisquer comentários em uma entrada JSON não padrão são descartados durante o parse. Este conversor preserva a ordem das chaves declarada, então a saída em YAML reflete exatamente a estrutura da entrada JSON.

JSON e YAML em um relance
AspectoJSONYAML
EstruturaChaves e colchetesIndentação
StringsSempre com aspasAspas geralmente opcionais
ComentáriosNão permitidosSuportados com #
Ordem das chavesPreservada por esta ferramentaPreservada por esta ferramenta
Melhor paraAPIs e troca de dadosArquivos de config e CI/CD

Convertendo especificações OpenAPI e Swagger de JSON para YAML

Especificações OpenAPI 3.0 / 3.1 e Swagger 2.0 são frequentemente escritas ou exportadas como JSON, mas a maioria dos editores, linters e ferramentas de CI espera YAML. Cole a especificação em JSON aqui para obter uma versão YAML que mantém intactas as referências $ref, as chaves de path e a ordem dos components. Como o conversor nunca ordena as chaves em ordem alfabética, a estrutura da especificação continua válida — evitando a corrupção de schema que os reformatadores genéricos podem introduzir. O resultado fica pronto para ferramentas como Redoc, Swagger UI ou o linting do Spectral.

Como funciona a conversão

A ferramenta primeiro valida o JSON e, em seguida, serializa o objeto resultante como YAML. Uma entrada inválida é rejeitada com a indicação aproximada da linha antes de a conversão rodar. Nada é enviado para nenhum servidor — cada etapa roda no navegador. Para um passo a passo mais detalhado dos padrões de conversão de JSON para YAML, veja o artigo guia complementar de JSON para YAML.

O que este conversor preserva e o que não preserva

Ele preserva a ordem das chaves, a profundidade de aninhamento, os tipos de valor (string, número, booleano, null) e a estrutura dos arrays. Ele não consegue transferir comentários do JSON (o JSON não tem nenhum), e a saída usa YAML em bloco por padrão para facilitar a leitura. Para a maioria dos fluxos com Kubernetes, Docker Compose e OpenAPI, o YAML já fica pronto para uso, sem edição adicional.

One-liners de CLI: yq, Python e Node.js

Prefere o terminal ou precisa disso dentro de um pipeline de CI/CD? Estes one-liners produzem o mesmo YAML em bloco, com a ordem das chaves preservada. Para um passo a passo completo com casos de borda como YAML de múltiplos documentos e block scalars, veja o guia de JSON para YAML.

yq (binário Go único)
yq -P -o=yaml '.' input.json > output.yaml
Python (PyYAML)
python -c "import json,sys,yaml; yaml.safe_dump(json.load(sys.stdin), sys.stdout, sort_keys=False)" < input.json
Node.js (js-yaml)
node -e "const y=require('js-yaml'),f=require('fs'); console.log(y.dump(JSON.parse(f.readFileSync(0,'utf8'))))" < input.json

Conversores relacionados

Artigos relacionados