SomeeLab.tools

Conversor de YAML para JSON

Converta YAML em JSON e o contrário, com âncoras e chaves de mesclagem já resolvidas e a largura da indentação à escolha. Tudo no navegador.

Indentação

Onde tirar as aspas muda o valor

O YAML decide sozinho o tipo de um valor sem aspas, e é aí que acontecem os acidentes.

version: 1.10 é lido como número e vira 1.1: o zero final some e a versão passa a significar outra coisa. zip: 01234 também vira o número 1234 e perde o zero inicial. CEPs, matrículas e telefones precisam de aspas, na forma "01234".

Valores como 12:30, no, yes e on continuam como texto nesta ferramenta. Já os analisadores que seguem as regras antigas, entre eles o PyYAML e o Ruby, leem no como falso — por isso o código de país NO acaba virando false, um caso conhecido. Se a configuração passa por várias ferramentas, coloque aspas nessas palavras também.

Regras de indentação

Indente apenas com espaços. Tabulação é erro de sintaxe. Se o seu editor insere tabulações, troque para espaços nos arquivos YAML.

Itens do mesmo nível precisam ficar exatamente alinhados. Uma coluna a mais e a leitura falha ali mesmo. Esta ferramenta informa a linha e a coluna em que parou.

Âncoras e chaves de mesclagem

&nome marca um bloco e *nome cola esse bloco onde for preciso. Com <<: o bloco é despejado dentro de outro mapa.

defaults: &d
  retry: 2
  image: node
job:
  <<: *d
  script: test

Esta ferramenta resolve as chaves de mesclagem, então o JSON sai com retry e image dentro de job. Sem resolver, sobraria uma chave literal "<<", inútil dali para frente. É uma sintaxe constante nos arquivos do GitLab CI e do Docker Compose.

O que se perde no caminho até o JSON

Os comentários somem. JSON não tem sintaxe de comentário, então converter uma configuração e salvar por cima do original joga fora todas as anotações que alguém deixou ali. Guarde o original.

Vários documentos também não cabem. Quando um arquivo traz documentos separados por ---, esta ferramenta acusa erro em vez de emitir só o primeiro em silêncio e deixar o resto desaparecer sem ninguém notar. Separe um manifesto do Kubernetes com vários documentos e converta um por vez.

Datas viram texto. O YAML reconhece data como tipo; o JSON não tem equivalente.

No sentido inverso

Ao passar de JSON para YAML, quase todas as aspas caem e o resultado fica bem mais legível. Elas permanecem nas strings com zero à esquerda e nas que se parecem com true, porque tirá-las ali mudaria o sentido. Continuarem é o comportamento certo, não um defeito de formatação.