Converter YAML para JSON e Vice-versa
Converta arquivos YAML em JSON ou JSON em YAML na hora — ferramenta grátis para desenvolvedores.
Seu arquivo fica no seu aparelho
Nada para apagar depois
Seguro para pipelines e secrets
Funciona em todo navegador moderno
Como funciona
- 1
Cole YAML ou JSON
Uma definição de pipeline, um manifesto do Kubernetes, um arquivo compose, um arquivo de idioma ou uma carga de API.
- 2
Leia os avisos
Valores retipados, comentários perdidos e chaves duplicadas são listados antes de você levar a saída.
- 3
Copie o resultado
Leve para um repositório, um corpo de requisição, um arquivo de configuração ou uma massa de teste.
Por que usar esta ferramenta
Tipos adivinhados são sinalizados
Todo valor sem aspas que o YAML leria como booleano, número ou data é mostrado a você antes da conversão.
O problema da Noruega é pego
Um NO solto é código de país muito mais vezes do que é a palavra falso, e você fica sabendo qual recebeu.
Zeros à esquerda sobrevivem
Telefones, CEPs e identificadores mantêm o zero que uma leitura octal comeria.
A perda de comentários é reportada
JSON não tem comentários, então você fica sabendo quantos vão sumir em vez de descobrir na revisão.
Âncoras e aliases explicados
Nós compartilhados são expandidos a caminho do JSON, e a expansão aparece — nada muda pelas suas costas.
Nada sai do navegador
Arquivos de pipeline, manifestos e playbooks são convertidos nesta página e não vão a lugar nenhum.
O YAML adivinha o que os seus valores significam, e os palpites têm vítimas famosas
O JSON pede que você diga o que um valor é: aspas fazem uma string, dígitos soltos fazem um número e nada é ambíguo. O YAML infere, e essa inferência é a maior fonte de surpresa do formato. O caso mais conhecido tem nome próprio — o problema da Noruega. Escreva uma lista de códigos de país e a entrada `NO` não chega como a string que a Noruega espera; pelas regras do YAML 1.1 ela chega como o booleano falso, porque a especificação lista `y`, `yes`, `n`, `no`, `on`, `off`, `true` e `false` em todas as capitalizações como literais booleanos. A mesma regra transforma o `ON` de Ontário em verdadeiro, transforma uma coluna de respostas `Y` e `N` em booleanos e transforma o `NO` de um conjunto de dados de química num falso. Piora porque os parsers discordam: o YAML 1.2 reduziu a lista a `true` e `false`, mas muito software ainda implementa 1.1 ou algo no meio, então o mesmo arquivo significa coisas diferentes em Python, em Go e em Ruby. A correção é um caractere de aspas, e o difícil é saber onde ele é necessário. É para isso que servem os avisos aqui.
Números que não são os números que você escreveu
A segunda família de surpresas é mais silenciosa que a primeira, porque produz um valor em vez de um erro. Um zero à esquerda tem significado no YAML 1.1: `0755` é octal e vale 493, o que serve se você pensava em permissões de arquivo e erra em qualquer outro caso. Um telefone escrito como `011987654321` portanto deixa de ser aquela string, e um identificador começando com `08` ou `09` nem sequer é octal válido, então os parsers se dividem entre lançar erro e cair de volta para string — o mesmo arquivo carregando limpo numa máquina e falhando em outra. Números de versão sofrem de outro jeito: `1.10` é um decimal, e decimais não guardam zeros finais, então o valor volta como 1.1 e a sua fixação de dependência passa a apontar para outra publicação. O YAML 1.1 também entendia sexagesimal, e por isso `12:30:00` podia chegar como 45000 e um endereço MAC virar um inteiro enorme. E um valor com cara de data como `2026-07-31` é interpretado como objeto de data em vez de string, que é por que um campo de versão ou uma referência de nota chega como timestamp numa linguagem e como texto em outra.
CPF, CEP e telefone: os campos brasileiros que o YAML estraga primeiro
A regra do zero à esquerda não é curiosidade acadêmica no Brasil: ela atinge quase todo cadastro. Um CPF armazenado sem formatação como `01234567890` não é um número na sua planilha, é uma sequência de onze dígitos em que o zero da frente faz parte da identidade — e o YAML tenta lê-lo como octal. Como o sistema octal não tem os algarismos 8 e 9, esse CPF nem é octal válido, então dependendo do parser você recebe um erro ou uma string, e o mesmo arquivo se comporta de dois jeitos em duas máquinas. Um CEP como `01310100` sofre igual. Um telefone com DDD `011` perde o zero e vira outro número. E há um caso pior porque é silencioso em vez de barulhento: um código de banco como `033` é octal válido e vira 27, sem erro, sem aviso, sem nada na tela — o arquivo carrega, o campo existe, e o valor está errado. Note que quando esses campos são gravados com máscara — `012.345.678-90`, `01310-100`, `(11) 98765-4321` — o problema desaparece sozinho, porque pontos e traços impedem a leitura numérica. Mas essa é sorte, não engenharia. A regra confiável é a de sempre: se você não vai fazer conta com aquilo, é texto, e texto vai entre aspas.
Converter para JSON perde coisas, e os comentários são a que fará falta
O YAML é muitas vezes descrito como um superconjunto do JSON, e para dados isso é quase verdade — mas só para dados. O que o YAML acrescenta não sobrevive à ida e à volta. Comentários são a perda óbvia e dolorosa: um manifesto do Kubernetes, um pipeline de integração ou um playbook do Ansible costuma ser metade explicação, e uma passagem pelo JSON apaga cada linha em silêncio, que é como alguém acaba revisando uma configuração cujo raciocínio evaporou. Âncoras e aliases são a segunda perda. O YAML permite definir um nó uma vez com `&defaults`, referenciá-lo com `*defaults` e mesclá-lo em outros mapeamentos pela chave de mesclagem; o JSON não tem esse conceito, então a conversão precisa expandir cada referência numa cópia. O documento continua significando o mesmo, mas a definição compartilhada sumiu, e uma edição futura que deveria mudar cinco lugares agora muda um. O YAML ainda permite vários documentos num mesmo fluxo e chaves que não são strings, e nenhum dos dois tem equivalente em JSON. Esta ferramenta reporta cada um desses pontos em vez de executá-los caladamente.
Um parser de YAML pode ser mandado construir objetos, e isso é uma falha de execução de código
Esta é a propriedade de segurança que separa o YAML do JSON, e vale dizer sem rodeios porque os padrões historicamente estavam errados. O YAML suporta tags que dizem ao parser qual tipo construir, e várias implementações levaram isso ao pé da letra: um documento contendo `!!python/object/apply:os.system` manda um carregador ingênuo chamar aquela função com os argumentos que você fornecer. No PyYAML, a função chamada `load` fez exatamente isso durante anos enquanto `safe_load` não fazia, o que significava que ler um arquivo de configuração com a função de nome mais óbvio era execução remota de código se um atacante pudesse influenciar o arquivo. A mesma classe de falha apareceu em Ruby, em Java via SnakeYAML e em desserializadores .NET. A lição vai além do YAML: qualquer formato capaz de descrever qual classe instanciar é um formato de código e não de dados, e entrada não confiável precisa passar por um carregador restrito a valores simples, sequências e mapeamentos. Esta ferramenta não constrói absolutamente nada — faz o parsing para dados puros e para por aí.
É no YAML que moram as credenciais, e esse é o argumento para converter localmente
Olhe o que de fato se escreve em YAML e o argumento para mantê-lo na sua máquina se monta sozinho. É o formato da infraestrutura: pipelines de integração contínua, manifestos e secrets do Kubernetes, valores do Helm, arquivos docker-compose, playbooks e inventários do Ansible, arquivos de variáveis do Terraform, definições de serviço. Uma configuração de integração contínua é, na maioria dos repositórios, o arquivo com maior densidade de credenciais que existe — ele nomeia o registro, o alvo de deploy e os ambientes, e normalmente referencia os tokens pelos exatos nomes de variável que os destrancam. Um Secret do Kubernetes é base64, não criptografado, ou seja, texto puro com um passo a mais. E as pessoas recorrem a um conversor justamente quando um desses arquivos falhou e precisa ser examinado, então o exemplo na área de transferência é o real, não uma amostra censurada. Tudo nesta página roda em JavaScript no seu navegador e não emite nenhuma requisição; abra o painel de rede das suas ferramentas de desenvolvedor antes de colar e veja o contador ficar parado.
Erros comuns que vale evitar
- Deixar um código de país ou uma abreviação sem aspas. Pelas regras do YAML 1.1, `NO`, `ON`, `Y` e `N` são literais booleanos: a Noruega vira falso e Ontário vira verdadeiro.
- Gravar CPF, CEP ou telefone sem máscara e sem aspas. O zero à esquerda vira octal, e um código de banco como `033` vira 27 em silêncio, sem erro nenhum na tela.
- Fixar uma versão como número solto. `1.10` é um decimal e decimais não guardam zeros finais, então o valor volta como 1.1 e aponta para outra publicação.
- Indentar com um caractere de tabulação. Tabulações são proibidas como indentação em todo o YAML, e a mensagem de erro não vai dizer isso porque o caractere é invisível.
- Carregar YAML não confiável com um carregador permissivo. Tags podem nomear uma classe a construir: foi assim que ler uma configuração virou execução de código no PyYAML e no SnakeYAML.
Comparação
| Item | Esta ferramenta | Conversores online | Uma ferramenta de linha de comando |
|---|---|---|---|
| Arquivo enviado a um servidor | Nunca | Geralmente sim | Não |
| Avisa sobre tipos adivinhados | Sim | Não | Raramente |
| Reporta comentários que serão perdidos | Sim | Não | Não |
| Detecta chaves duplicadas | Sim | Raramente | Varia |
| Constrói objetos a partir de tags | Nunca | Varia | Depende do carregador |
| Preço | Grátis | Grátis / planos pagos | Grátis |
Recursos
Os dois sentidos
De YAML para JSON e de JSON para YAML, com a indentação e o estilo de aspas sob seu controle.
Avisos de coerção de tipo
Todo valor tipado implicitamente é listado com o que o YAML leu e o que você provavelmente quis dizer.
Detecção de chaves duplicadas
Uma chave repetida sobrescreve em silêncio na maioria dos parsers; aqui é reportada em vez de aplicada.
Fluxos com vários documentos
Documentos separados por três traços são processados e mapeados para um array JSON em vez de descartados.
Expansão de âncoras e aliases
Nós compartilhados e mesclados são resolvidos com a expansão visível, incluindo chaves de mesclagem.
Arquivos grandes suportados
Um manifesto longo ou um arquivo de tradução inteiro converte sem upload nem teto de tamanho.
Nada para instalar
Sem ferramenta de build, sem runtime, sem dependências — funciona na página web.
Compatível com árabe e RTL
Interface completa em oito idiomas, incluindo árabe da direita para a esquerda.
Seguro por padrão
Servido por HTTPS, sem rastreio de conteúdo e sem envio a terceiros.
Quem usa
Engenheiros de plataforma e DevOps
Conferir o que um manifesto realmente diz depois que as âncoras são expandidas.
Desenvolvedores backend
Transformar uma carga JSON num arquivo de configuração legível, ou o contrário.
Times de localização
Mover arquivos de tradução entre um framework baseado em YAML e um baseado em JSON.
Quem depura um pipeline
Achar o valor sem aspas que um parser leu como booleano.
Perguntas Frequentes
Não. Tudo roda localmente no seu navegador — seu texto nunca é enviado, armazenado ou compartilhado.
Sim — totalmente grátis, sem conta e sem limites.