📋
← Voltar aos guias

O que é JSON? Um Guia Completo para Iniciantes

· Tags: json, what-is-json, json-syntax, json-data-types, web-development

O que é JSON?

JSON (JavaScript Object Notation) é um formato de intercâmbio de dados leve e baseado em texto, projetado para ser fácil de ler e escrever para humanos e fácil de analisar e gerar para máquinas. Originalmente derivado da sintaxe de literais de objetos JavaScript, tornou-se desde então um padrão independente de linguagem, suportado por praticamente todas as linguagens de programação.

Hoje, o JSON é o formato dominante para intercâmbio de dados na web. Ele alimenta APIs REST, arquivos de configuração, bancos de dados NoSQL, comunicação de aplicativos móveis e inúmeros outros sistemas orientados a dados. Sua simplicidade e ubiquidade o tornaram a escolha padrão para desenvolvedores em todo o mundo.

Regras de Sintaxe do JSON

O JSON segue um conjunto estrito e mínimo de regras de sintaxe:

  • Os dados são estruturados em pares de chave/valor
  • Todas as chaves devem ser strings entre aspas duplas (aspas simples não são permitidas)
  • Os pares de chave/valor são separados por dois-pontos (:)
  • Os pares são separados por vírgulas (,)
  • Chaves {} delimitam objetos
  • Colchetes [] delimitam arrays
  • Vírgulas finais não são permitidas
  • Comentários não são permitidos em JSON estrito

Exemplo de JSON Válido

{
  "name": "Jane Smith",
  "age": 28,
  "isEmployed": true,
  "skills": ["JavaScript", "Python", "SQL"],
  "address": {
    "street": "123 Main Street",
    "city": "San Francisco",
    "zipCode": "94102"
  },
  "phoneNumbers": null
}

Exemplos de JSON Inválido

Vírgula final (inválido):

{
  "name": "Jane",
  "age": 28,
}

Chave com aspas simples (inválido):

{ 'name': 'Jane' }

Chave sem aspas (inválido):

{ name: "Jane" }

Tipos de Dados do JSON

O JSON suporta exatamente seis tipos de dados:

| Tipo | Descrição | Exemplo | |------|-------------|---------| | String | Texto Unicode entre aspas duplas | "Hello, world!" | | Número | Inteiro ou ponto flutuante | 42, 3.14, -7, 1.5e10 | | Booleano | Verdadeiro ou falso lógico | true, false | | Null | Valor vazio intencional | null | | Objeto | Coleção não ordenada de chave/valor | {"key": "value"} | | Array | Lista ordenada de valores | [1, 2, 3] |

Notavelmente ausentes: datas, timestamps, dados binários, undefined e funções não possuem representação nativa em JSON. Por convenção, as datas são normalmente armazenadas como strings ISO 8601.

JSON vs Outros Formatos de Dados

O JSON coexiste com vários outros formatos de intercâmbio de dados, cada um com suas compensações:

  • JSON vs XML: o JSON é mais conciso e mais rápido de analisar. O XML suporta atributos, namespaces e esquemas (XSD), mas é significativamente mais verboso.
  • JSON vs YAML: o YAML é mais legível para humanos em arquivos de configuração e suporta comentários, mas sua sintaxe sensível à indentação pode ser propensa a erros. O JSON é mais portátil e tem validação mais estrita.
  • JSON vs CSV: o CSV é plano e apenas tabular. O JSON suporta hierarquias aninhadas e tipos de dados mistos.
  • JSON vs Protocol Buffers: o Protobuf é menor e mais rápido para comunicação máquina a máquina, mas requer uma definição de esquema e não é legível para humanos.

Por que o JSON Domina as APIs Web

Vários fatores explicam o domínio do JSON no design de APIs web:

  1. Ubiquidade de linguagens -- toda linguagem importante tem um analisador JSON nativo ou bem mantido, eliminando o atrito de integração.
  2. Suporte nativo em navegadores -- o JSON.parse() e o JSON.stringify() do JavaScript tornam o JSON a escolha natural para aplicações web.
  3. Largura de banda mínima -- a sintaxe leve do JSON produz payloads menores que o XML, reduzindo latência e custos de largura de banda.
  4. Legibilidade humana -- os desenvolvedores podem inspecionar, depurar e escrever dados JSON manualmente sem ferramentas especiais.
  5. Esquema flexível -- ao contrário de formatos rígidos como XML Schema ou Protocol Buffers, o JSON acomoda estruturas de dados em evolução sem recompilação.

Casos de Uso Comuns do JSON

  • APIs REST e GraphQL -- o formato padrão para payloads de requisição e resposta.
  • Arquivos de configuração -- usados por ferramentas como ESLint, Prettier, webpack e VS Code.
  • Bancos de dados NoSQL -- MongoDB e CouchDB armazenam dados como documentos semelhantes a JSON.
  • Serialização de dados -- estruturar dados para armazenamento, transferência ou cache.
  • Comunicação em tempo real -- mensagens JSON em streams WebSocket e Webhooks.
  • Agregação de logs -- ferramentas de registro estruturado como Winston, Logstash e Datadog usam JSON para entradas de log pesquisáveis e filtráveis.

Validação e Formatação de JSON

Ao trabalhar com JSON, a validação é crítica. Um único erro de sintaxe -- uma vírgula final, uma aspas ausente ou um caractere não escapado -- pode quebrar uma integração de API inteira ou um arquivo de configuração. A inspeção manual não é confiável, especialmente para documentos JSON grandes.

Como Validar JSON

A validação normalmente segue estas etapas:

  1. Analise a string JSON usando um analisador padrão como JSON.parse() em JavaScript ou equivalente na linguagem de sua escolha.
  2. Verifique erros de sintaxe -- o analisador lançará um erro na primeira violação, com uma mensagem indicando a localização do problema.
  3. Corrija os erros iterativamente -- como os analisadores param no primeiro erro, corrija-o e revalide até que o documento passe.

A maioria das ferramentas de JSON online combina validação com formatação. Cole seu JSON e a ferramenta verifica instantaneamente a sintaxe, realça os erros com números de linha e coluna e produz saída limpa e indentada. Isso é significativamente mais rápido do que depurar com exceções de analisador no seu código.

Dicas para Trabalhar com JSON

  • Sempre valide antes de usar -- nunca presuma que JSON escrito à mão é válido.
  • Use um linter -- ferramentas como ESLint com plugins de JSON detectam erros antes que cheguem à produção.
  • Prefira bibliotecas de JSON -- gere JSON com bibliotecas de serialização em vez de concatenação de strings para evitar erros sutis de sintaxe.
  • Defina cabeçalhos Content-Type estritos -- para APIs, aplique Content-Type: application/json para rejeitar requisições malformadas cedo.

Use um validador e formatador de JSON online gratuito para verificar instantaneamente sua sintaxe JSON, localizar erros e formatar seus dados para legibilidade. Seja você um iniciante aprendendo o básico ou um desenvolvedor experiente depurando uma API em produção, nossa ferramenta Formatador e Validador de JSON ajuda você a trabalhar com dados JSON com eficiência.