Pular para o conteúdo principal
PulsarKit

Converter YAML para JSON e JSON para YAML

Uma ferramenta para os dois sentidos: a direção é deduzida do próprio arquivo, YAML com vários documentos é aceito e todo erro indica a sua linha.

Solte seus arquivos aqui

.yaml, .yml, .json, .txt · até 300 MB

Direção
Mais configurações

Como converter YAML para JSON e JSON para YAML

  1. 1

    Solte um arquivo YAML ou JSON

    Adicione um arquivo ou até vinte. As extensões .yaml, .yml e .json são reconhecidas, e um lote pode misturá-las à vontade.

  2. 2

    Confira a direção detectada

    A direção é escolhida pela extensão ou, em texto simples, pelo conteúdo. Mude-a sempre que o palpite automático não for o que você queria.

  3. 3

    Converta e baixe

    Clique no botão e salve o arquivo convertido. Vários arquivos voltam juntos em um único ZIP.

Por que a direção precisa ser deduzida com cuidado

Todo documento JSON válido também é YAML válido. Por isso, testar um arquivo primeiro com um analisador YAML classificaria um simples .json como YAML e o converteria nele mesmo. Assim, a extensão manda: .json vira YAML, e .yaml e .yml viram JSON. Só no .txt e em outras entradas sem rótulo o conteúdo decide, e o JSON é testado primeiro exatamente pelo mesmo motivo.

Chave duplicada é erro, não preferência

No JSON, o último valor de uma chave repetida vence, sem aviso. No YAML, a mesma repetição é um erro que justifica interromper a conversão, porque é nos arquivos de configuração que ela acontece: um docker-compose.yml com as portas (ports) listadas duas vezes no mesmo nível anula em silêncio a primeira lista, e a descoberta costuma acontecer em produção. Os dois números de linha são informados, para você ver qual definição estava prestes a sumir.

Quatro esquemas, e o que se ganha com um mais restrito

O esquema padrão resolve os tipos habituais do YAML, incluindo datas e blobs binários. Core e json são cada vez mais restritos, e failsafe reconhece só strings, mapas e sequências. Escolha um esquema restrito quando uma configuração precisa ser lida como dado literal: isso evita as surpresas clássicas do YAML, em que um número de versão vira número decimal e “no” vira false.

Suas configurações não saem do seu dispositivo

Arquivos de configuração trazem nomes de host, portas, nomes de buckets e às vezes coisa pior, e é exatamente por isso que esta conversão acontece na aba do seu navegador, e não em um servidor. A leitura e a geração do texto rodam localmente, em um worker (processo em segundo plano), com o código que veio junto com a página. Nada é enviado, nada entra em fila e nada sobrevive ao fechamento da aba.

Perguntas frequentes

Como a direção da conversão é escolhida?

Primeiro pela extensão do arquivo: .json vai para YAML, e .yaml e .yml vão para JSON. Em .txt e outros arquivos sem rótulo, quem decide é o conteúdo: o texto é testado primeiro como JSON e depois como YAML. Se nenhum dos dois funcionar, a página avisa, e você mesmo escolhe a direção.

O que acontece com um arquivo YAML com vários documentos?

Um arquivo dividido por marcadores --- pode ser lido de dois jeitos. Com o modo de vários documentos ativado, cada documento vira um elemento de um único array JSON. Com ele desativado, só o primeiro documento é convertido, e um aviso que não bloqueia nada informa que o resto foi ignorado; assim, um resultado cortado nunca é uma surpresa silenciosa.

Por que uma chave duplicada é tratada como erro?

Porque, no YAML, a segunda definição sobrescreve a primeira sem nenhum sinal de que isso aconteceu. É um jeito comum de perder um mapeamento de porta ou uma variável de ambiente em um arquivo de configuração. A conversão é interrompida e mostra a chave com os dois números de linha, para você decidir qual definição era a certa.

O que é o esquema failsafe e quando preciso dele?

O failsafe resolve só strings, mapeamentos e sequências; nada vira número, booleano, data ou null. É a escolha certa quando uma configuração precisa ser preservada ao pé da letra, por exemplo quando um valor como 1.10 é uma versão, e não um número, ou quando o “problema da Noruega” transforma o código de país “no” em false.

Os comentários do YAML ficam no JSON?

Não, e nem poderiam. O JSON não tem nenhuma sintaxe para comentários, então tudo o que vem depois de um # é descartado na conversão. Isso é uma característica do formato de destino, e não uma falha da ferramenta; por isso, se os comentários importam para você, mantenha o YAML como a versão de referência.

O que muda o nível do estilo em linha (flow level)?

Ele define em que profundidade de aninhamento a saída YAML troca o estilo de bloco, com hifens e indentação, pelo estilo em linha, como [a, b] e {a: b}. O padrão mantém todos os níveis em estilo de bloco, que é mais fácil de ler em configurações editadas à mão. Uma profundidade positiva compacta tudo o que fica abaixo dela, o que combina com dados muito aninhados.

A ferramenta aceita âncoras e aliases?

Não. Âncoras, aliases e chaves de mesclagem (&defaults, *defaults e <<), assim como tags personalizadas de aplicativo, ficam fora do que esta ferramenta lê. Um arquivo que usa esses recursos recebe um erro claro, com a linha, em vez de um resultado errado em silêncio, o que é a falha mais segura para uma configuração que você está prestes a colocar em produção.

Meu arquivo é enviado para algum lugar?

Não. Os dois analisadores vêm com a página e rodam dentro da aba do seu navegador, então sua configuração nunca passa pela rede. Não existe nenhum servidor para armazená-la, e nada fica guardado depois que a aba é fechada.

Ferramentas relacionadas