Converta JSON para YAML e YAML para JSON no seu navegador
JSON e YAML descrevem o mesmo tipo de dados — mapas aninhados, listas, strings, números e booleanos —, mas têm aparências bem diferentes e são usados em lugares diferentes. Se você passa algum tempo perto de APIs, arquivos de contêiner ou pipelines de CI, mais cedo ou mais tarde precisa transformar um no outro. Esta página faz essa conversão nas duas direções, inteiramente dentro do seu navegador, então os dados que você cola nunca saem da sua máquina.

O que é o JSON e onde ele vive
JSON (JavaScript Object Notation) é um formato estrito, de chaves e colchetes, feito primeiro para máquinas. Todo objeto é envolvido em {}, todo array em [], chaves e valores de string ficam entre aspas duplas, e os itens são separados por vírgulas. É o formato de transporte padrão das APIs REST e GraphQL, o corpo da maioria dos webhooks, o formato dos documentos NoSQL e o que sua chamada fetch retorna. Quase toda linguagem o interpreta de fábrica, e é exatamente por isso que ele venceu na camada de API: JSON.parse no JavaScript, json na biblioteca padrão do Python e equivalentes em todos os outros lugares. O trade-off é que o JSON é verboso para escrever à mão e proíbe comentários, então é um formato ruim para arquivos que um humano edita o dia todo.
O que é o YAML e onde ele vive
YAML (YAML Ain't Markup Language) foi projetado para a prioridade oposta: humanos primeiro. Ele dispensa as chaves e aspas, usa indentação para expressar aninhamento e permite escrever comentários com #. Essa legibilidade é o motivo de ele ter virado a língua franca da configuração. Arquivos do Docker Compose, manifestos do Kubernetes, workflows do GitHub Actions e do GitLab CI, playbooks do Ansible e incontáveis arquivos de configuração de apps são todos YAML. Um documento YAML típico é visivelmente mais curto que o JSON equivalente e muito mais fácil de comparar num pull request. O preço dessa elegância é a fragilidade, e é aí que a conversão fica interessante.
As diferenças-chave que importam
Três diferenças dirigem quase toda decisão de conversão. Primeiro, o espaço em branco é significativo no YAML e irrelevante no JSON. O YAML usa espaços — nunca tabulações — para denotar estrutura, então um único espaço desalinhado pode mudar silenciosamente o sentido de um documento. O JSON não liga nem um pouco para a indentação. Segundo, o YAML suporta comentários e o JSON não. Qualquer comentário # no YAML simplesmente desaparece quando você produz JSON, porque não há onde colocá-lo. Terceiro, o YAML tem tipagem mais rica e implícita. Ele lê alegremente datas, timestamps e null em várias grafias, e adivinha tipos a partir de valores sem aspas. O JSON tem um conjunto de tipos pequeno e explícito e nenhuma ambiguidade. Note também que o JSON é tecnicamente um subconjunto do YAML 1.2, e é por isso que JSON válido costuma ser analisado de forma limpa como YAML, mas o contrário não é garantido.

Detalhes traiçoeiros da conversão para observar
A ida e volta nem sempre é sem perdas, e vale saber onde as coisas quebram:
- O problema da Noruega. Sob as regras do YAML 1.1,
NOsem aspas é interpretado como o booleanofalse, eyes,oneofftambém viram booleanos. Um código de país ou um rótulo de chave pode virartrue/falseantes de você perceber. Coloque entre aspas os valores que você quer como strings. - Coerção de números. Uma versão como
3.10pode perder o zero final e virar3.1, e1.0vira um número mesmo quando você queria texto. Coloque entre aspas strings de versão e IDs. - Âncoras e aliases somem. As referências
&anchore*aliasdo YAML não têm equivalente em JSON. Um bom conversor as expande em seu valor completo, então os dados ficam corretos, mas a deduplicação se foi — JSON para YAML para JSON não vai reconstruir as âncoras originais. - Comentários e block scalars. Comentários são descartados ao ir para JSON. Block scalars de múltiplas linhas (
|e>) colapsam em strings JSON comuns com escapes\n, então a intenção visual de formatação se perde. - Indentação ao voltar para YAML. O JSON não codifica indentação, então o conversor escolhe um estilo consistente. Revise-o antes de colar em uma ferramenta sensível a tabulações.
Por que apenas local importa
Arquivos de configuração e payloads de API são exatamente o tipo de coisa que não deveria ser enviado a um servidor qualquer: eles muitas vezes carregam hostnames, tokens, nomes de serviços internos ou dados de clientes. Este conversor roda o passo de analisar e emitir no seu navegador com JavaScript. Nada é enviado a um backend, nada é registrado, e a ferramenta funciona offline depois que a página carregou. Cole um secret do Kubernetes ou um workflow de CI com a confiança de que ele permanece na sua máquina.
Precisa de ferramentas relacionadas? Explore o conjunto completo de conversores de dados, organize uma entrada bagunçada com o formatador de JSON e volte aqui sempre que precisar transitar entre o mundo das APIs e o mundo da configuração.
Perguntas frequentes
Meus dados são enviados para algum lugar?
Não. A conversão acontece inteiramente no seu navegador usando JavaScript local. Seu JSON ou YAML nunca é enviado a um servidor, então secrets e arquivos de configuração permanecem privados.
Por que meu valor YAML true ou false mudou inesperadamente?
O YAML 1.1 trata palavras sem aspas como yes, no, on e off como booleanos — o problema da Noruega. Envolva em aspas qualquer valor que você queira como string para que ele sobreviva à conversão como texto.
O que acontece com meus comentários quando converto YAML para JSON?
O JSON não tem sintaxe de comentário, então todos os comentários com cerquilha são removidos durante a conversão. Se você precisa preservar anotações, mantenha sua cópia oficial em YAML.
As âncoras e aliases do YAML são preservados?
Eles são expandidos em seus valores completos porque o JSON não tem mecanismo de referência. Os dados permanecem corretos, mas a deduplicação não é recuperável quando você converte de volta para YAML.
Posso converter JSON para YAML e também YAML para JSON?
Sim, a ferramenta funciona nas duas direções. Cole JSON para obter YAML, ou cole YAML para obter JSON, e o conversor detecta e emite o outro formato.
Por que o YAML quebra quando uso tabulações?
O YAML exige espaços para indentação e rejeita tabulações. Se uma colagem falhar ao ser analisada, substitua os caracteres de tabulação por espaços e mantenha a indentação consistente.
