Conversor YAML ↔ JSON

Converta YAML em JSON e JSON em YAML, com a linha e a coluna de cada erro.

O formulário interativo fica disponível quando o JavaScript está ativo.

Como usar

Escolha YAML → JSON ou JSON → YAML e cole o texto: o resultado aparece enquanto você digita. Inverter coloca o resultado de volta na caixa e troca o sentido, então ir e voltar leva um clique. Indentação define 2 ou 4 espaços no resultado.

O YAML é lido com o esquema core do YAML 1.2, a versão atual da linguagem. Só true e false são booleanos, null e ~ são nulos e as datas continuam como texto. Palavras como yes, no, on e off eram booleanos no YAML 1.1 e ainda são para algumas ferramentas antigas; aqui elas continuam como texto, e JSON → YAML as escreve entre aspas para que essas ferramentas também as leiam como texto.

Âncoras e aliases (&nome e *nome) e chaves de mesclagem (<<) são escritos por completo, porque o JSON não tem referências. Os comentários se perdem: a especificação do YAML os trata como apresentação, não como dados. Um arquivo com vários documentos separados por --- vira uma lista JSON, com um item por documento.

Quando a entrada não é válida, a ferramenta indica a linha e a coluna do problema, mostrando a linha com um acento circunflexo embaixo do ponto exato. Tudo roda no seu navegador com a biblioteca de código aberto js-yaml, e nada é enviado.

Exemplo

“production” recebe as chaves de “defaults” por meio de <<, mantém o próprio retries: 5, e off continua sendo o texto "off", como manda o YAML 1.2.

  • debug: off → {"debug": "off"}No YAML 1.2, off é texto, não false.
  • <<: *defaultsCopia as chaves do mapa com âncora; as chaves escritas ao lado têm prioridade.
  • a: 1, depois ---, depois b: 2Dois documentos viram a lista [{"a": 1}, {"b": 2}].
  • {"a": 1,}JSON inválido na linha 1, coluna 8: o JSON não aceita vírgula antes de }.

Perguntas frequentes

Meu arquivo é enviado?

Não. A conversão acontece no seu navegador e nada é enviado, então arquivos de configuração com nomes ou endereços internos ficam no seu dispositivo.

Por que yes ou on não viraram true?

O YAML 1.2 só considera booleanos true e false. Yes, no, on e off só são booleanos no antigo YAML 1.1, por isso aqui continuam como texto. Se precisar de um booleano, escreva true ou false.

Para onde foram meus comentários?

O JSON não tem comentários, e a especificação do YAML diz que comentários não fazem parte dos dados. Eles se perdem na passagem para JSON e não voltam ao converter de novo para YAML.

Por que um número longo mudou?

O JavaScript guarda os números do JSON em ponto flutuante de 64 bits, então inteiros acima de 9.007.199.254.740.991 perdem os últimos dígitos. Coloque IDs longos entre aspas para que continuem como texto.

O que significa “unknown tag”?

O YAML usa uma tag própria, como !Ref ou !GetAtt do AWS CloudFormation, que só essa ferramenta entende. Escreva a forma longa (Ref: ou Fn::GetAtt:) e converta de novo.

Ferramentas relacionadas