Converter JSON em YAML (e YAML em JSON)
Cole o conteúdo de um lado e o resultado aparece do outro enquanto você digita. O botão Inverter troca o sentido e leva o resultado para a entrada. Nada é enviado a servidor: a conversão acontece no seu navegador, o que importa quando o arquivo tem senhas, tokens ou endereços internos.
Como usar
- Escolha o sentido: JSON → YAML ou YAML → JSON.
- Cole o texto, clique em Abrir arquivo (
.json,.yaml,.yml) ou carregue o Exemplo. - Ajuste as opções: indentação de 2 ou 4 espaços, JSON minificado, chaves em ordem alfabética.
- Copie o resultado ou baixe o arquivo.
Se a entrada tiver erro, a mensagem indica a linha e a coluna, e o botão Ir para a linha seleciona o trecho.
JSON e YAML representam os mesmos dados
Os dois formatos descrevem a mesma coisa: mapas (objetos), listas, textos, números, booleanos e nulo. O que muda é a escrita. O JSON usa chaves, colchetes e aspas; o YAML usa indentação e dispensa quase toda a pontuação.
{ "servico": { "nome": "api", "portas": [80, 443], "ativo": true } }servico:
nome: api
portas:
- 80
- 443
ativo: trueDesde a versão 1.2 (de 2009), o YAML foi desenhado para aceitar JSON como subconjunto: um arquivo JSON válido pode ser lido por um analisador de YAML 1.2. O contrário não vale, porque o YAML tem recursos sem equivalente em JSON.
O que se perde de YAML para JSON
- Comentários. JSON não tem comentários; as linhas com
#desaparecem. - Âncoras e aliases. Em YAML,
&nomemarca um trecho e*nomeo reutiliza. No JSON, cada alias vira uma cópia completa do valor, e a ferramenta avisa quando isso acontece. O mesmo vale para a chave de mesclagem<<, muito usada em arquivos do Docker Compose. - Vários documentos. Um arquivo YAML pode ter vários documentos separados por
---(comum em manifestos do Kubernetes). O resultado vira uma lista JSON com um item por documento. - Chaves que não são texto.
1: umé uma chave numérica em YAML; em JSON ela passa a ser"1". - Infinito e NaN.
.infe.nannão existem em JSON e viramnull, com aviso.
O “problema da Noruega”: yes, no, on e off
Na versão 1.1 do YAML, as palavras yes, no, on e off sem aspas eram booleanos. Daí o caso clássico: numa lista de siglas de países, NO (Noruega) virava false. A versão 1.2 acabou com isso — só true e false são booleanos —, mas muitas bibliotecas ainda seguem a regra antiga, entre elas a PyYAML, do Python.
Este conversor segue o YAML 1.2, então pais: NO vira "pais": "NO". Para evitar surpresas, ele faz duas coisas:
- Ao ler YAML, avisa quando encontra essas palavras sem aspas e oferece a opção Ler como YAML 1.1, que reproduz o comportamento antigo (
NOvirafalse,22:22vira o número 1342 em base 60,010vira 8 em octal). - Ao gerar YAML, coloca entre aspas os textos que um analisador antigo leria como outro tipo:
"no","on","12:30","2024-01-02". Assim o arquivo é lido do mesmo jeito em qualquer programa. Dá para desligar em Aspas em textos ambíguos.
Erros comuns em YAML
- Tab na indentação. YAML só aceita espaços para indentar.
- Indentação desalinhada. Chaves do mesmo nível precisam começar na mesma coluna.
- Dois-pontos dentro do texto.
titulo: Aviso: leiaé inválido; escrevatitulo: "Aviso: leia". - Chave repetida no mesmo mapa. Alguns programas ficam com a última em silêncio; aqui é erro, assim como no JSON de entrada.
- Barra invertida entre aspas duplas, como em
"C:\pasta". Use aspas simples.
Números grandes e ordem das chaves
Inteiros acima de 2^53 (9.007.199.254.740.992), como IDs de 64 bits, passam pela conversão dígito por dígito, sem o arredondamento que o JSON.parse do JavaScript faria. A ordem das chaves do arquivo é mantida, inclusive a de chaves numéricas como "10" e "2". Números decimais continuam sujeitos à precisão de ponto flutuante: 1.0 sai como 1.
Limites
A entrada aceita até 2 milhões de caracteres. Tags personalizadas (como !Ref do CloudFormation) são descartadas, com aviso, e o valor é mantido. Chaves complexas — uma lista ou um mapa usado como chave — não têm representação em JSON e geram erro.
Perguntas frequentes
YAML é melhor que JSON? Depende do uso. YAML é mais confortável para arquivos escritos por pessoas (configuração, pipelines de CI). JSON é mais simples, sem ambiguidade, e é o padrão para troca de dados entre programas.
Posso converter o arquivo do Kubernetes ou do Docker Compose? Sim. Manifestos com vários documentos viram uma lista, e âncoras e mesclagens (<<) são expandidas.
Os comentários do YAML vão para o JSON? Não, porque JSON não tem comentários. Para reorganizar um YAML sem perder comentários, use o visualizador e formatador de YAML.
Por que meu texto saiu entre aspas no YAML? Porque sem aspas ele seria lido como outro tipo: "123" seria número, "true" seria booleano e "no" seria false em programas antigos.
Meu arquivo é enviado para algum servidor? Não. Tudo roda no navegador, e a página funciona até sem conexão depois de carregada.