YAML para JSON e JSON para YAML — conversor que não preserva comentários
Converta configurações YAML de Kubernetes, docker-compose ou GitHub Actions em JSON e vice-versa no navegador. É uma nova serialização, não um ida e volta sem perdas: comentários, âncoras e documentos múltiplos são perdidos, e valores sem aspas seguem as regras de tipagem do YAML.
O que este conversor faz — e o que ele perde
Duas direções, um botão para cada
YAML → JSON e JSON → YAML são ações separadas. O resultado sobrescreve o outro editor e nunca é mesclado ao texto existente.
Comentários sempre se perdem
Os comentários YAML são descartados na análise e o YAML gerado nunca inclui comentários. O JSON não tem sintaxe de comentário.
Âncoras são expandidas, documentos múltiplos falham
Os pares &anchor / *alias são resolvidos em objetos duplicados. Um arquivo com vários documentos --- é rejeitado em vez de mesclado.
Valores seguem a tipagem do YAML 1.2
1.0 sem aspas vira 1, 2024-01-01 vira um carimbo de data/hora ISO e .inf / .nan viram null. Use aspas para manter um valor como texto.
Executa localmente, com seleção de arquivo e download
Os arquivos são lidos no navegador e nada é enviado. Não há limite rígido de tamanho, mas um arquivo muito grande trava a aba durante a conversão.
Perguntas frequentes sobre YAML ↔ JSON
A conversão é bidirecional?
Sim: um botão para YAML → JSON e outro para JSON → YAML. Mas cada direção serializa os dados novamente, então comentários, formatação e âncoras não são preservados. O YAML gerado usa indentação de 2 espaços e quebra linhas longas em 80 colunas; não há opções de indentação ou ordenação.
É possível preservar comentários?
Não. O analisador YAML descarta os comentários e o YAML gerado nunca os adiciona; o JSON não tem sintaxe de comentário. Mantenha o arquivo comentado como fonte da verdade e trate a saída como dado derivado.
Âncoras, aliases e vários documentos são suportados?
Âncoras e aliases são resolvidos e gravados como valores duplicados. Documentos múltiplos (vários blocos ---) são rejeitados com “expected a single document in the stream”; separe-os antes. Isso afeta manifestos Kubernetes com vários recursos em um arquivo.
Por que version: 1.0 vira 1 e yes continua texto?
Escalares sem aspas são tipados pelas regras do YAML: 1.0 é número, então é impresso como 1. O js-yaml segue o YAML 1.2, em que yes / no / on / off são textos simples, então a chave on: do GitHub Actions continua texto. Use aspas quando o tipo precisar continuar texto.
Como datas, inteiros grandes e null são tratados?
Uma data sem aspas como 2024-01-01 é interpretada como carimbo de data/hora e vira 2024-01-01T00:00:00.000Z no JSON. Inteiros acima de 2^53 perdem precisão e .inf / .nan viram null. ~, null e valores vazios também viram null.
Funciona com arquivos Kubernetes, docker-compose ou GitHub Actions?
YAML padrão de documento único funciona, incluindo esses formatos. Separe antes as exportações Kubernetes com vários documentos e lembre que os comentários se perdem: não use o resultado como arquivo de configuração a ser commitado.
E o tamanho dos arquivos e a privacidade?
Tudo roda no navegador e nenhum arquivo é enviado. Não há limite configurado, mas a conversão é síncrona na thread principal, então arquivos de vários MB podem congelar a página.

