JSON (JavaScript Object Notation) é um formato de texto para representar dados estruturados: objetos (mapas de chave → valor), arrays ordenados, strings, números, booleanos e null. Foi padronizado na ECMA-404 e descrito na RFC 8259 como formato comum na web.
Por que JSON domina APIs REST
- Legível por humanos com indentação moderada.
- Fácil de gerar e consumir em praticamente qualquer linguagem.
- Mapeamento natural para objetos em JavaScript, dicionários em Python,
struct/mapem Go, etc.
Tipos e sintaxe essencial
- Objeto:
{ "chave": valor }— chaves são strings entre aspas duplas. - Array:
[ valor1, valor2 ]— ordem importa. - String: sequência Unicode escapada com
\",\\,\n,\uXXXXquando necessário. - Número: decimal ou notação científica; sem separador de milhar; cuidado com precisão de ponto flutuante em moedas (prefira centavos inteiros em domínios financeiros).
- Boolean:
trueoufalse. null: ausência explícita de valor.
JSON não aceita comentários // ou /* */ no padrão oficial — ferramentas que “relaxam” isso geram arquivos que quebram parsers estritos.
Para que serve no mundo real
- Contratos de APIs HTTP (request/response).
- Arquivos de configuração (
package.json, manifests de CI). - Telemetria e logs estruturados (às vezes em linha única NDJSON).
Armadilhas frequentes
- Datas — não existe tipo
date; use ISO 8601 em string ou timestamp numérico com convenção clara de fuso. - Números grandes — inteiros acima de
2^53-1perdem precisão em JSON.parse do JavaScript; use string para IDs enormes se precisar fidelidade absoluta. - Ordem de chaves — em objeto, parsers modernos preservam inserção, mas não dependa disso entre sistemas.
- Duplicar chaves — comportamento indefinido; evite.
Relação com CSV e XML
- CSV é tabular denso; converta com cuidado de tipos e delimitadores (guia do conversor).
- XML preserva atributos, namespaces e documentos mistos; JSON prefere árvores homogêneas (o que é XML).
Experimentar
Abrir formatador JSON/XML no Cod3x Tools
Cole um payload, valide a sintaxe e alterne entre formatado e minificado sem sair do navegador.