O que esta ferramenta faz
YAML é um superconjunto de JSON, então quase toda a conversão transcorre sem história: mapeamentos viram objetos, sequências viram arrays, escalares viram strings, números, booleanos ou null.
O que vem a seguir é onde deixa de ser sem história.
Identificadores longos mantêm seus dígitos
id: 12345678901234567890
{ "id": 12345678901234567890 }
Parece banal, e é justamente esse o ponto. Um número JSON é um ponto flutuante de dupla precisão e guarda cerca de quinze dígitos; um identificador de vinte — um snowflake do Twitter, um bigint do PostgreSQL — antes voltava como outro número, em silêncio. Agora os dígitos são lidos exatos e escritos sem mudança.
As âncoras são expandidas, porque o JSON não as sustenta
defaults: &d
retries: 3
web:
<<: *d
vira duas cópias de retries: 3. O JSON não tem a noção de um valor presente em dois lugares, então o compartilhamento não sobrevive à travessia. A saída é maior que a entrada e nada se perde — mas a relação sim, e vale saber antes de converter um arquivo construído com âncoras e reconvertê-lo.
Vários documentos viram um array
--- separa documentos. O JSON não tem separador, então um fluxo de três documentos vira um array de três valores. Um documento único não é embrulhado: você recebe o objeto.
Os nulos, os três
~, null e um valor vazio significam null em YAML, e os três viram null. É um dos poucos pontos em que o JSON é mais simples que o YAML, e não o contrário.
O que esta conversão não pode decidir por você
yes é lido como a string "yes", porque é o que diz o YAML 1.2. Um arquivo escrito para o PyYAML, que aplica o YAML 1.1, queria dizer o booleano verdadeiro.
Nada no arquivo diz qual versão o autor tinha em mente. Se o seu YAML vem de uma ferramenta Python e um yes, no ou on puro importa, coloque aspas na origem — e saiba que a ambiguidade está no arquivo, não no conversor.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.