Como converter YAML para JSON (e vice-versa) sem instalar nada

Precisa de mudar entre YAML e JSON? Aprenda as principais diferencas entre os dois formatos e como converte-los instantaneamente no seu browser.

YAML e JSON: duas faces da mesma moeda

YAML e JSON sao ambos formatos de serializacao de dados amplamente utilizados no desenvolvimento de software. Se ja trabalhou com Docker Compose, Kubernetes, GitHub Actions ou Ansible, escreveu YAML. Se ja construiu qualquer API web ou trabalhou com JavaScript, escreveu JSON. Sobrepoe-se consideravelmente, de facto, todo o ficheiro JSON valido e tambem YAML valido.

No entanto, tem pontos fortes distintos, e os projetos precisam regularmente de mover dados entre os dois.

Principais diferencas

YAML esta melhorado para humanos. Usa recuo em vez de parenteses retos, suporta comentarios, permite strings multilinhas de forma natural e parece mais um ficheiro de configuracao do que codigo. Isto torna-o popular para configuracao: ficheiros Docker Compose, pipelines de CI, playbooks Ansible, charts Helm.

JSON esta melhorado para maquinas. E rigoroso, sem ambiguidade, e todas as principais linguagens de programacao tem um parser JSON nativo ou da biblioteca padrao. E a lingua franca das APIs web e do intercambio de dados.

YAMLJSON
ComentariosSim (`#`)Nao
Aspas em stringsOpcionalObrigatorio
Strings multilinhasNativoRequer `\n`
Virgulas a terminarPermitidoNao permitido
Rigor da sintaxeRelaxadoRigoroso
Suporte de ferramentasBomUniversal

Cenarios comuns de conversao

YAML para JSON: tem um ficheiro de configuracao YAML e precisa de passar os seus valores para uma API JSON, validar a estrutura ou importa-lo para uma ferramenta que so aceita JSON.

JSON para YAML: recebeu um payload JSON e quer guarda-lo como um ficheiro de configuracao mais legivel, ou esta a migrar de uma ferramenta baseada em JSON para uma baseada em YAML (por exemplo, passar de um bloco de configuracao package.json para um ficheiro de configuracao YAML separado).

Armadilhas a ter em conta

Tipos especiais do YAML

O YAML tem coercao de tipos implicita. A string yes em YAML torna-se o booleano true em JSON. A string 1.0 torna-se um float. null, ~ e valores vazios mapeiam para null em JSON. Verifique sempre que os seus valores de string que parecem booleanos ou numeros estao entre aspas em YAML se precisar que permanecam strings apos a conversao.

Erros de recuo

O YAML e sensivel ao recuo. Um espaco extra pode alterar a estrutura do documento. Se a ferramenta de conversao apresentar um erro, o culpado mais provavel e o recuo inconsistente (misturar tabulacoes e espacos nao e permitido).

Multiplos documentos

O YAML suporta varios documentos num unico ficheiro separados por ---. A maioria das ferramentas JSON so trata um documento de cada vez; verifique se o seu conversor trata este caso.

Como converter no browser

Nao precisa de instalar uma ferramenta de linha de comandos nem escrever um script para converter entre estes formatos. O Conversor YAML para JSON deste site trata a conversao inteiramente no lado do cliente, cole o seu YAML e obtenha JSON instantaneamente (ou vice-versa). Os seus dados nunca saem do browser.

Para utilizadores de linha de comandos: yq (um processador YAML) e jq (um processador JSON) sao as ferramentas padrao. O comando yq -o=json o-seu-ficheiro.yaml converte YAML para JSON num so passo.

Resumo

Ambos os formatos tem o seu lugar. O YAML e excelente para configuracao escrita por humanos; o JSON e excelente para a troca de dados entre maquinas. Converter entre eles e simples uma vez que se compreende a equivalencia estrutural, e conhecer as armadilhas (tipos implicitos, recuo, varios documentos) evita surpresas dificeis de depurar.