Toda aplicação web moderna, microsserviço em nuvem e backend mobile depende de uma linguagem digital comum para trocar informações estruturadas. Esse formato universal é o JSON (JavaScript Object Notation).
1. Introdução e História
O JSON foi popularizado no início dos anos 2000 por Douglas Crockford como uma alternativa leve e limpa à complexidade excessiva do XML. Embora inspirado na notação literal de objetos do JavaScript, o JSON é totalmente independente de linguagem e padronizado pelos protocolos RFC 8259 e ECMA-404.
2. Os 6 Tipos de Dados Fundamentais
O JSON especifica rigorosamente apenas seis tipos de dados. Qualquer estrutura com tipos externos a esta lista é considerada inválida:
{ "userId": 101, "role": "admin" }[ "production", "staging", "dev" ]"Texto Unicode com aspas duplas"42, 3.14159, -17, 1.2e5true, falsenull3. Regras Rígidas de Sintaxe e Gramática
Diferente dos motores tolerantes do JavaScript, os analisadores JSON impõem conformidade total:
- Aspas Duplas Obrigatórias: Chaves de objetos e textos literais devem usar aspas duplas (
"chave"). Aspas simples ('chave') provocam interrupção imediata de sintaxe. - Sem Vírgulas Sobressalentes (Trailing Commas): Vírgulas funcionam exclusivamente como separadores. Uma vírgula após o último elemento é um erro de parsing.
- Proibição de Comentários: A especificação padrão do JSON não aceita comentários com
//ou/* */.
4. Análise com Árvore de Sintaxe Abstrata (AST)
Quando um navegador executa JSON.parse(), um analisador léxico determinístico converte tokens de caracteres brutos em uma Árvore de Sintaxe Abstrata (AST) na memória. O parser valida chaves emparelhadas e pares substitutos UTF-8 antes de gerar objetos nativos.
5. JSON vs XML e YAML
Embora o XML domine ecossistemas orientados a documentos com esquemas rígidos (XSD) e o YAML seja preferido para configurações em DevOps, o JSON permanece a escolha padrão em APIs HTTP de alto volume por sua baixa sobrecarga de serialização e parsing nativo instantâneo.
6. Segurança e Boas Práticas
Nunca utilize eval() para processar dados JSON desconhecidos. Utilize sempre JSON.parse() nativo do navegador, que executa desserialização segura sem risco de execução de scripts maliciosos.