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
Mais configuraçõesMenos configurações
Como converter YAML para JSON e JSON para YAML
- 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
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
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.