JSON vs YAML vs TOML, Explicado
Última revisão 2026-04-27. Abra o parser JSON ou JSON to CSV para trabalho JSON no navegador.
Os três formatos lado a lado
A mesma configuração, três formas:
JSON YAML TOML
{ server: [server]
"server": { host: "localhost" host = "localhost"
"host": "localhost", port: 8080 port = 8080
"port": 8080
}
}
JSON - rigoroso e inequívoco
O objetivo de design do JSON era um formato que qualquer linguagem pudesse analisar identicamente. A gramática é pequena (seis tipos de dados, regras de espaço em branco bem definidas). Cada parser produz a mesma árvore. Essa uniformidade é o motivo pelo qual JSON domina APIs, ficheiros de configuração para ferramentas que trazem um parser JSON, e serialização máquina a máquina.
Onde JSON é desajeitado: comentários não são permitidos, vírgulas finais são erros de sintaxe, e configuração profundamente aninhada fica ilegível para humanos. A correção é JSON5 (JSON com comentários e vírgulas finais) para configuração editada por humanos, enquanto mantém JSON puro para transporte.
YAML - legível, por vezes demasiado esperto
YAML lê-se como notas de esquema. A indentação cria estrutura; listas usam traços; valores não precisam de aspas. Os campos são curtos e o ficheiro é denso. É por isso que YAML domina Kubernetes, GitHub Actions, Docker Compose e configurações de CI - todos lugares onde humanos editam o ficheiro diariamente.
Onde YAML magoa: o espaço em branco é significativo e os tabs quebram o parser. A string "yes" analisa como o booleano true. O código de país Noruega "NO" analisa como false. Números com zeros a esquerda analisam como octal. Strings multi-linha têm quatro sintaxes diferentes. O formato é legível por humanos mas não seguro para humanos; bugs de análise subtis são comuns em produção. A correção é lintar cada ficheiro YAML em CI e citar qualquer string que pareça poder ser mal interpretada.
TOML - simples, raso
TOML mira no nicho de ficheiros de configuração onde YAML é demasiado solto e JSON é demasiado verboso. Secções em parênteses retos, pares chave-valor com sinais de igual, tipos nativos de data e hora. Cargo (gestor de pacotes do Rust), pyproject.toml em Python moderno, e várias ferramentas de configuração usam-no.
Onde TOML é desajeitado: dados profundamente aninhados. A sintaxe para arrays de tabelas é verbosa e não visualmente óbvia. Para aninhar mais de 2-3 níveis, YAML ou JSON leem melhor. TOML vence quando a configuração é naturalmente plana - uma lista de dependências, uma lista de definições de compilação, um pequeno conjunto de secções nomeadas.
Regra de decisão
Máquina a máquina: JSON. Configuração humana editada diariamente, com estrutura maioritariamente plana: TOML. Configuração humana editada diariamente, com estrutura profundamente aninhada: YAML, com linting em CI. Em caso de dúvida, JSON - o rigor é seguro barato.
Para converter entre formatos, veja JSON to CSV ou o parser JSON. Para outras ferramentas de programador, o hub de ferramentas para programadores.
Para validação JSON prática no navegador, veja JSON parser: validar vs formatar vs visualização em árvore - explica quando cada ação do parser JSON faz sentido. Para comparar o formatador JSON online com outras ferramentas, veja JSON formatter vs alternativas.
FreetoolOnline editorial teamWhy trust these tools
- Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
- No install, no sign-up. Open a tool and get a working output in seconds - nothing to download and no account to create. Tools that need heavy processing run it on our service, so even a low-powered machine gets the job done.
- Analytics stops at the page view. We measure which pages get visited, not what you type or upload inside a tool. There is nothing to sign in to and no profile is attached to your input.
- Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
- Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.