Conversor de YAML para JSON

Converta YAML para JSON e JSON para YAML, com a linha e a coluna exatas de qualquer erro de sintaxe.

Como usar

  1. Cole YAML ou JSON — a ferramenta descobre qual é, ou escolha você mesmo o sentido da conversão.
  2. Clique em "Converter". Se a sintaxe estiver quebrada, leia a linha e a coluna na mensagem e veja o marcador ^ embaixo do caractere que causou o problema.
  3. Copie o resultado ou baixe como converted.json ou converted.yaml. Nada é enviado.

Sobre esta ferramenta

YAML e JSON descrevem a mesma coisa — mapas, listas, textos, números, booleanos e null — com prioridades opostas. O JSON usa chaves e aspas, de que as máquinas gostam e que as pessoas digitam errado. O YAML usa indentação e quase nenhuma pontuação, de que as pessoas gostam até um espaço perdido mudar o formato do documento. Converter de um para o outro é trabalho de rotina: ler um manifesto do Kubernetes ou um workflow do GitHub Actions como JSON para um script consumir, ou transformar a resposta de uma API de volta em YAML para um arquivo de configuração. Esta ferramenta vai nos dois sentidos e detecta qual formato você colou.

A conversão é a metade fácil; o esforço desta ferramenta está no que acontece quando o YAML está quebrado. Um erro de sintaxe é informado como linha e coluna, contadas do jeito que um editor conta, com um trecho das linhas ao redor e um marcador embaixo do caractere exato que travou o parser. A posição nem sempre é onde você espera. Uma tabulação usada para indentar é recusada na própria tabulação, e o trecho a imprime como uma seta, para você enxergar aquilo que não dá para ver. Uma aspa não fechada é apontada no fim do arquivo, e não na aspa de abertura, porque é ali que o parser fica sem texto procurando a aspa de fechamento. Uma chave duplicada é sinalizada na segunda ocorrência, e aqui isso é erro, não aviso. Os erros de JSON recebem o mesmo tratamento: os navegadores os descrevem de formas diferentes e alguns informam só a posição do caractere, então a linha e a coluna são calculadas aqui e saem idênticas em qualquer navegador.

O YAML consegue expressar coisas que o JSON não consegue, e cada uma delas é avisada em vez de mudar os seus dados em silêncio. Âncoras e aliases são expandidos, então um alias vira uma cópia completa do valor ancorado, e você é avisado. Merge keys, não: o parser roda sobre o schema JSON, que não as resolve, então uma linha << sobrevive como chave literal, com um aviso para você mesclar esses campos na mão. Um arquivo com vários documentos separados por --- vira um array JSON, um item por documento. Os valores .inf e .nan saem como null, e inteiros muito grandes perdem os últimos dígitos; os dois casos são sinalizados. Esse schema também é uma escolha de segurança: tags como !!js/function são rejeitadas como desconhecidas, em vez de instanciadas. E nada disso viaja — tudo roda no seu dispositivo.

Perguntas frequentes

Meu YAML ou JSON sai do meu navegador?

Não. O texto é interpretado e convertido por JavaScript no seu próprio dispositivo — nada é enviado a lugar nenhum, armazenado ou registrado. Isso importa aqui: um manifesto do Kubernetes carrega nomes de host, portas, nomes de bucket e contas de serviço.

O que exatamente significam a linha e a coluna do erro?

São o ponto onde o parser desistiu, contado a partir de 1, como no seu editor, com o marcador embaixo desse caractere. Um caso costuma surpreender: uma aspa não fechada é apontada no fim do arquivo, então procure para trás a última aspa que você abriu.

Âncoras e aliases são suportados?

Sim. Cada alias vira uma cópia completa do valor ancorado no JSON, e a ferramenta avisa isso. As merge keys são a exceção: elas não são resolvidas, o << sobrevive como chave literal e você recebe um aviso explícito, em vez de um resultado silenciosamente errado.

Ele converte um arquivo com vários documentos separados por ---?

Sim. O JSON não tem o conceito de vários documentos em um arquivo, então cada documento YAML vira um item de um array JSON, na ordem, e um aviso diz quantos foram encontrados.

Por que "yes" saiu como texto em vez de true?

Porque o YAML 1.2 trata apenas true e false como booleanos; yes, no, on e off continuam textos. Parsers 1.1 mais antigos convertiam esses valores — é a mesma regra que transforma o código do país NO em false. Coloque o valor entre aspas sempre que ele precisar continuar sendo texto.

Ferramentas relacionadas

Links longos? Encurte de graça

O Vai.la transforma qualquer URL em um link curto com estatísticas de cliques, QR Code e seu próprio biolink.

O Vai.la não se responsabiliza pelo uso das ferramentas nem por decisões tomadas com base nos seus resultados.