Initializing, please wait a moment

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.

Resposta em 30 segundos. JSON é para máquinas - sintaxe rigorosa, fácil de analisar, feio de ler. YAML é para humanos - espaço em branco é significativo, suporta âncoras e referências, propenso a erros de análise subtis. TOML é um meio termo - limpo para configuração rasa, desajeitado para aninhamento profundo. Escolha por quem edita o ficheiro e quão complexos são os dados.

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.

Why 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.

Related tools:

Tags: #guide, #developer, #json

Related guides: