Visão geral / Desenvolvimento e código / Conversor YAML ↔ JSON
Desenvolvimento e código 100% no navegador e offline

Conversor YAML ↔ JSON

Converta YAML em JSON e JSON em YAML no navegador. Trata vários documentos, âncoras e aliases e mostra os erros com linha e coluna.

Cole ou digite o conteúdo; o resultado aparece na hora e os erros são exibidos abaixo do campo. Os campos já vêm com um exemplo: clique em um e digite para substituí-lo.

Seus arquivos e dados nunca saem do navegador – nada é enviado.

Opções

Lê YAML 1.2. yes, no, on e off continuam strings, datas continuam strings, números octais precisam de 0o. Os comentários se perdem. Documentos separados por --- viram um array JSON. Inteiros além de 2^53 perdem precisão, .nan e .inf viram null. Entrada máxima: 2.000.000 de caracteres.

Um manifesto do Kubernetes de um lado, um validador de esquema JSON que só aceita JSON do outro. Um conversor de YAML para JSON fecha essa lacuna. Cole o YAML, leia o JSON, copie. A mesma página converte JSON em YAML quando você precisa de um arquivo de configuração legível a partir da resposta de uma API.

O que a conversão de YAML para JSON faz com o seu arquivo

A ferramenta lê YAML 1.2. Nessa versão, yes, no, on e off são strings simples, não booleanos. Uma data como 2001-12-14 continua string. Um número octal precisa do prefixo 0o, então 0o17 é 15 e 017 é 17.

Âncoras (&name), aliases (*name) e chaves de mesclagem (<<: *name) são resolvidos, então o JSON contém os valores copiados. Comentários não existem em JSON e são descartados.

Um arquivo com vários documentos separados por --- vira um array JSON com uma entrada por documento. A linha de estatísticas diz quantos foram achados, por exemplo "3 documentos". Um arquivo com um documento continua sendo um objeto ou lista simples. Documentos vazios no fim são ignorados.

Convertendo uma configuração em quatro passos

  1. Escolha a direção com os botões "YAML → JSON" ou "JSON → YAML". A caixa mostra um exemplo para cada direção até você digitar o seu.
  2. Cole o seu texto. A conversão começa 300 milissegundos depois da sua última tecla. A primeira execução carrega a biblioteca YAML, então pode levar um instante.
  3. Defina as opções: indentação do JSON de 2 espaços, 4 espaços ou minificado, e "Ordenar as chaves alfabeticamente". Para a saída em YAML você também pode escolher a indentação e quebrar linhas longas em 80 caracteres ou não quebrar.
  4. Aperte "Copiar" ou "Baixar". O download se chama converted.json ou converted.yaml.

Strings que parecem números, booleanos ou null

De JSON para YAML há uma armadilha: a string "123" não pode virar o número 123. A ferramenta a escreve com aspas. O mesmo vale para "null", "true", "~" e uma string vazia. Ela também coloca entre aspas "yes", "no", "on", "off" e tudo o que começa como uma data, porque analisadores YAML 1.1 os leem como booleanos ou timestamps. Strings com quebras de linha viram escalares de bloco com |.

Erros, avisos e valores que o JSON não comporta

Um arquivo YAML quebrado para com a mensagem da biblioteca e a linha e a coluna, por exemplo uma tabulação usada como indentação. Duas chaves iguais em um mesmo mapa são um erro, não uma sobrescrita silenciosa. Um alias sem âncora acima também é um erro. Uma tag desconhecida como !custom é apenas uma nota, e o valor é mantido como texto.

O YAML permite .nan, .inf e -.inf. O JSON não. A ferramenta escreve null para eles e informa quantos substituiu. Inteiros além de 2^53 (cerca de 9 quatrilhões) são arredondados para o número mais próximo que o JavaScript consegue guardar, com uma nota. O mesmo arredondamento acontece quando você cola JSON com esses números. Se um texto JSON repete uma chave, vale o último valor.

Entradas acima de 2.000.000 de caracteres são recusadas com uma mensagem.

O que sai da sua máquina

Nada é enviado. A biblioteca YAML é um script deste site que o navegador carrega uma vez, quando você converte pela primeira vez. Depois disso, a análise e a escrita rodam na aba do navegador. "Copiar" usa a área de transferência, "Baixar" salva um arquivo a partir do navegador. Você pode olhar o painel de rede enquanto converte: não há requisição com o seu texto.

Perguntas frequentes (FAQ)

A ferramenta lê YAML 1.2, em que apenas true e false são booleanos. Analisadores YAML 1.1 leem yes, no, on e off como booleanos, então ferramentas antigas podem discordar deste resultado.