Conversor JSON ↔ YAML
Vá e volte entre JSON e YAML no navegador. Usa js-yaml — ideal para Kubernetes, GitHub Actions e configs de CI.
Para que serve YAML?
YAML é o primo simpático do JSON: o mesmo modelo de dados (objetos, arrays, strings, números, booleanos, null), mas com indentação significativa em vez de chaves e colchetes — e com suporte a comentários. Por isso YAML é o formato dominante em arquivos de configuração editados por humanos: manifests do Kubernetes, values do Helm, workflows do GitHub Actions, pipelines de CI, Docker Compose, playbooks do Ansible e quase toda configuração moderna de aplicação usam YAML. JSON, por outro lado, manda em formatos de transporte e APIs porque qualquer linguagem o lê sem dor. Esta ferramenta deixa você quicar entre os dois sem sair do navegador. JSON → YAML serve para pegar uma resposta de API e transformar em manifest do Kubernetes, ou pegar uma coleção do Postman e reformatar para um tutorial. YAML → JSON serve para quando uma ferramenta exige JSON ou você quer validar um YAML contra um JSON Schema. A conversão usa a famosa biblioteca js-yaml, baixada via CDN só na primeira conversão; o resto é puro navegador.
Como usar
Escolha o sentido, cole os dados, clique em Converter. O resultado aparece logo abaixo, com botão de copiar.
- Escolha o sentido — Use JSON → YAML para transformar respostas de API ou configs gerados em algo editável. Use YAML → JSON quando alguma ferramenta exige JSON ou você quer enviar uma config YAML para uma API HTTP.
- Use um exemplo — Clique em Service do Kubernetes, GitHub Action ou Config de app para carregar um exemplo realista que você pode editar e converter. O exemplo respeita o sentido escolhido.
- Escolha a indentação — 2 espaços é o que a maioria dos linters e ferramentas espera (Kubernetes, Ansible, Helm). 4 espaços só se o seu time tiver padronizado.
- Ordene chaves para diffs estáveis — Ative Ordenar chaves A→Z para uma saída em ordem alfabética. Isso ajuda em diffs de git e snapshots quando duas ferramentas geram a mesma estrutura em ordens diferentes.
Regras de mapeamento entre os formatos
Os dois formatos compartilham o modelo lógico, então a maioria dos valores faz round-trip idêntico. Strings, números, booleanos, null, arrays e objetos são um para um. O js-yaml segue YAML 1.2 que (diferente do 1.1) não trata yes, no, on, off como booleanos — só true e false — evitando o famoso "problema da Noruega". Strings multilinha em YAML usam blocos literal (|) ou folded (>); ao converter de JSON, esta ferramenta gera strings normais com \n escapado, por portabilidade. Comentários só existem em YAML; converter JSON → YAML → JSON descarta os comentários porque JSON não tem onde guardá-los.
Referência rápida
Alguns valores e como eles atravessam os dois formatos.
| JSON | YAML |
|---|---|
{ "a": 1 } | a: 1 |
[1, 2, 3] | - 1 |
"yes" | 'yes' (com aspas para continuar string) |
null | null (ou vazio / ~) |
"line\nbreak" | "line\nbreak" |
{ "n": 1.0 } | n: 1.0 (continua float) |
Perguntas frequentes
Por que meu YAML mostra "true" como booleano?
YAML interpreta true e false sem aspas como booleanos. Se quer a string literal de quatro letras, coloque entre aspas: flag: "true". O conversor respeita o que você escreveu.
Funciona com arquivos YAML multi-documento?
YAML aceita vários documentos no mesmo arquivo, separados por ---. Este conversor processa apenas o primeiro documento ao gerar JSON. Para bundles de manifest do Kubernetes, separe o arquivo antes ou converta um por vez.
Por que meus comentários YAML somem após o round-trip?
JSON não suporta comentários. Indo de YAML para JSON, todos os comentários são descartados. O caminho de volta não consegue recuperá-los. Guarde uma cópia do YAML se os comentários importam.
A conversão é sem perdas em configs típicas?
Para Kubernetes, GitHub Actions, Docker Compose e similares — sim, com a única perda sendo comentários e o estilo específico de strings multilinha. Números, datas em ISO, booleanos, mapas aninhados e arrays voltam idênticos.
E quanto a âncoras e aliases (&ref / *ref)?
O js-yaml resolve âncoras e aliases na leitura, então o JSON gerado já contém os valores expandidos. O caminho contrário não reintroduz âncoras automaticamente — se você contava com elas para evitar repetição, vai precisar adicioná-las à mão.
Algum dado vai para servidor?
Não. A biblioteca js-yaml é baixada de CDN pública na primeira conversão e fica em cache. A própria conversão roda inteira no seu navegador.
EN
PT
ES