coldwa.st
Todos os guiasProgramaçãoWebDadosFerramentasBases de dadosHaskellConceitosCabal e buildsToolchainCompiladorDesempenhoEditor e HLS

Programação · dados · web

O que é o JSON?

Por ColdwastAtualizado a 14 de junho de 20266 min de leitura#json#data#web
Código num editor no ecrã
Código num editor — o JSON é o formato de texto no qual dados como estes são muitas vezes trocados.

Abre quase qualquer resposta de uma API web, um ficheiro de configuração JavaScript ou as definições guardadas de uma app moderna, e verás aí JSON. É o formato que transporta discretamente a maioria dos dados estruturados que circulam pela Internet. Este guia explica o que é o JSON, a sua pequena sintaxe, porque se impôs, a comparação com XML e onde mostra os seus limites.

A definição curta

O JSON (JavaScript Object Notation) é um formato leve, baseado em texto, para representar dados estruturados. É fácil de ler para os humanos e fácil de analisar para as máquinas e, apesar do nome, é independente da linguagem — praticamente todas as linguagens de programação sabem lê-lo e escrevê-lo.

A sintaxe, num exemplo

O JSON é construído a partir de um punhado de tipos de valor: objetos, arrays, strings, números, booleanos e null. Um objeto é um conjunto de pares chave–valor entre chavetas; um array é uma lista ordenada entre parênteses retos:

{
  "name": "Ada",
  "age": 36,
  "active": true,
  "roles": ["admin", "author"],
  "address": { "city": "London", "zip": "EC1" }
}

Isto é essencialmente todo o formato. As chaves são sempre strings entre aspas duplas; os valores podem ser eles próprios objetos ou arrays, pelo que o JSON se aninha a qualquer profundidade. Não há funções, nem variáveis, nem lógica — descreve dados, nada mais.

Um portátil a mostrar um painel de dados com gráficos
Um portátil a mostrar um painel de dados — os serviços trocam permanentemente dados estruturados em JSON por trás de interfaces como esta.

Porque é que o JSON está em todo o lado

  • As API falam-no. Quando uma app pede dados a um servidor, a resposta é quase sempre JSON. Projeta-se de forma limpa nos objetos e arrays que cada linguagem já possui.
  • É legível por humanos. Podes abrir uma resposta JSON e compreendê-la sem ferramentas, o que torna a depuração muito mais fácil do que com os formatos binários.
  • É minúsculo e universal. A especificação é pequena, cada linguagem inclui um analisador de JSON, e o formato acrescenta pouca sobrecarga.
  • Os ficheiros de configuração usam-no. De package.json a inúmeras definições de ferramentas, o JSON é uma forma comum de guardar a configuração.

JSON vs XML

Antes do JSON, o XML era o formato de troca de dados comum. O XML é mais verboso — cada valor está rodeado por etiquetas de abertura e de fecho — e suporta funcionalidades como atributos, espaços de nomes e esquemas que o JSON não tem. O JSON venceu nas API web porque é mais leve, menos ruidoso e projeta-se diretamente nos objetos JavaScript no navegador. O XML continua a ter o seu lugar onde as suas funcionalidades documentais mais ricas contam; para a maioria das trocas de dados, o JSON é a escolha por omissão.

Os limites honestos

A simplicidade do JSON tem as suas contrapartidas. Não tem comentários, por isso não podes anotar em linha um ficheiro de configuração. Não tem um tipo data — as datas são passadas sob a forma de strings por convenção. Não tem um esquema integrado (embora ferramentas como o JSON Schema acrescentem um em separado), e os documentos JSON grandes são menos eficientes do que os formatos binários concebidos de propósito. Para a maioria dos dados web, nada disto tem importância; para dados muito volumosos ou fortemente tipados, é bom saber.

FAQ

O JSON é exclusivo do JavaScript? Não. O nome vem da sintaxe JavaScript, mas o JSON é independente da linguagem — Python, Go, Rust, Java e os outros leem-no e escrevem-no nativamente.

Qual é a diferença entre JSON e um objeto JavaScript? Parecem-se, mas o JSON é um formato de texto (uma string); um objeto JavaScript é um valor vivo em memória. Tu analisas (parse) texto JSON num objeto, e serializas (stringify) um objeto de volta para JSON.

O JSON pode guardar comentários? Não. O formato omite deliberadamente os comentários. Algumas ferramentas aceitam variantes „JSON com comentários“, mas o JSON padrão não.

Como são tratadas as datas em JSON? Sob a forma de strings, por convenção — geralmente no formato ISO 8601 como „2026-06-14“. O próprio JSON não tem um tipo data dedicado.

O JSON é a metade „dados“ da maioria das comunicações web; o mecanismo de pedido-e-resposta que o rodeia é a API. Explora outras explicações claras no nosso índice de guias.

Guia independente, mantido pela comunidade. coldwa.st é um site de recursos de programação; este artigo é um texto explicativo novo e original sobre o JSON. Os exemplos refletem o formato JSON padrão — verifica os casos particulares na especificação (json.org / ECMA-404).