TanodTools
PT

Converter YAML para JSON

Cole YAML e receba JSON de volta, com âncoras e chaves de merge resolvidas e a linha exata de qualquer erro de sintaxe.

Funciona inteiramente no seu navegador

Formato

Entrada de até cerca de 10 MB. Lê YAML 1.2 só com os tipos padrão; tags personalizadas como !!python/object são recusadas, não executadas.

Como converter YAML para JSON

  1. Cole seu YAML na caixa ou clique em Inserir exemplo.
  2. Escolha 2 espaços, 4 espaços, tabulação ou Minificar para o formato do JSON.
  3. Se o YAML tiver um erro de sintaxe, você vê a linha e a coluna. Caso contrário, copie o JSON ou baixe como arquivo .json.

De YAML para JSON

YAML e JSON descrevem o mesmo tipo de dado: mapeamentos, listas e valores simples. O YAML é escrito por pessoas, com indentação em vez de chaves, comentários e atalhos como âncoras; o JSON é o que a maioria dos programas e APIs espera. Converter YAML para JSON é comum quando um manifesto do Kubernetes, um arquivo do Compose ou uma descrição OpenAPI precisa ser passado para algo que só lê JSON.

Alguns recursos do YAML não têm equivalente em JSON, então o conversor os resolve. Uma âncora (&base) marca um bloco que um alias (*base) pode reutilizar, e uma chave de merge (<<) copia as entradas de um mapeamento para outro; no JSON, cada um deles vira uma cópia completa. Os comentários são descartados, porque o JSON não os aceita. Um arquivo com vários documentos separados por --- vira um array JSON.

As regras de tipo seguem o YAML 1.2: true e false são booleanos, null e ~ são nulos, números são números, e todo o resto, inclusive yes e 2024-05-01, é texto. Os erros de sintaxe trazem linha e coluna, e as causas mais frequentes são uma tabulação usada na indentação, uma chave repetida no mesmo mapeamento e um valor que não está indentado sob a sua chave.

Dicas

Perguntas frequentes

Meu YAML é enviado para algum lugar?

Não. O parser de YAML é carregado deste site na primeira vez que você cola algo e roda no seu navegador. Configurações com senhas ou chaves não são enviadas para lugar nenhum.

Por que yes continua sendo o texto “yes”?

Esta ferramenta segue o YAML 1.2, em que só true e false são booleanos. As palavras yes, no, on e off continuam strings, o que evita o chamado problema da Noruega, em que o código do país NO vira false em parsers YAML 1.1. Se quem vai ler o arquivo for um parser YAML 1.1, ele pode interpretar essas palavras de outro jeito.

O que acontece com datas e timestamps?

Um valor como 2024-05-01 é mantido como a string “2024-05-01”. O JSON não tem tipo de data, e convertê-lo num número ou noutro formato perderia informação.

E os números inteiros muito grandes?

Inteiros acima de 9.007.199.254.740.991 (253 - 1) são escritos dígito por dígito em vez de arredondados, então um ID como 12345678901234567890 sobrevive. Saiba que um programa que depois ler o JSON com números comuns do JavaScript vai arredondá-lo.

Âncoras, aliases e chaves de merge são suportados?

Sim. Âncoras &name e aliases *name são expandidos, e <<: *name mescla um mapeamento em outro. Como o JSON não tem referências, cada alias é escrito por inteiro.

Que limite de aliases e de 20 MB é esse?

Um arquivo YAML pequeno pode usar aliases que se expandem em algo enorme, a chamada bomba de aliases. Arquivos com mais de 10.000 aliases são recusados, e a conversão para se o JSON passar de 20 MB, para a sua aba não travar.