Conversor YAML ⇄ JSON

YAML para JSON e vice-versa, validação com número da linha e avisos do YAML 1.1.

Convert

Valid · 1 documents

  • Line 8: NO is a string in YAML 1.2, but a boolean in YAML 1.1 parsers (PyYAML, older Ruby). Quote it to be safe.
  • Line 9: 0644 has a leading zero. YAML 1.2 reads it as a decimal number, YAML 1.1 as octal. Write 0o… or quote it.

O que faz

Converte YAML para JSON, JSON para YAML e formata YAML em um estilo consistente. Cada conversão valida o arquivo: erros mostram linha e coluna. O analisador é próprio e roda no seu navegador, então arquivos de configuração não saem do seu computador.

Que YAML ele entende

O subconjunto comum do YAML 1.2: mapas e listas aninhados, coleções em linha [a, b] e {a: 1}, strings simples, com aspas simples ou duplas, blocos | e > com indicadores - e +, âncoras, aliases, a chave de mesclagem <<, tags padrão e vários documentos separados por --- (que viram um array JSON). Chaves complexas, tags personalizadas como !Ref e %TAG são apontadas como erro. Comentários são descartados.

Armadilhas do YAML 1.1

Muitos programas ainda leem YAML com regras 1.1. NO, yes, on e off são strings no YAML 1.2, mas booleanos no 1.1 (o "problema da Noruega"); 0755 é 755 no 1.2 e octal 493 no 1.1. A ferramenta avisa com o número da linha e, de JSON para YAML, coloca essas strings entre aspas. A ordem das chaves é mantida e números longos não são arredondados.

Perguntas frequentes

Por que o código de país NO vira false?

No YAML 1.1, NO é booleano. O YAML 1.2 trata como string; esta ferramenta usa 1.2, mas avisa. Escreva 'NO' entre aspas para que todos os analisadores concordem.

Por que um tab é erro?

A especificação do YAML proíbe tabs para indentação. Use espaços.

O que acontece com os comentários?

São descartados, porque JSON não tem comentários e o YAML formatado é reconstruído a partir dos dados.