Exemplos:
// O JSON formatado aparecerá aqui
JSON válido
Chaves
Profundidade
Tamanho
Tipo

O que é JSON?

JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados baseado em texto, originalmente derivado da sintaxe de objetos literais do JavaScript. Definido na RFC 8259, JSON representa dados como pares chave-valor (objetos) e listas ordenadas (arrays). É o formato dominante para APIs REST, arquivos de configuração e serialização de dados porque praticamente toda linguagem de programação moderna inclui um parser JSON nativo.

JSON suporta seis tipos primitivos: string, number, boolean (true/false), null, object (chaves) e array (colchetes). Todas as strings e chaves de objetos devem estar entre aspas duplas — aspas simples não são JSON válido.

Erros Comuns de Sintaxe JSON

A especificação JSON é deliberadamente estrita, o que significa que pequenos erros causam uma falha completa no parse. As causas mais frequentes de JSON inválido são:

  • Vírgulas finais: Uma vírgula após o último elemento de um objeto ou array — {"a": 1,} — não é permitida em JSON. É válida em literais de objetos JavaScript e muitas linguagens, mas explicitamente proibida pela especificação JSON.
  • Strings entre aspas simples: JSON requer aspas duplas para todas as strings e chaves. Escrever {'key': 'value'} é inválido; deve ser {"key": "value"}.
  • Chaves sem aspas: Chaves de objetos devem ser sempre strings entre aspas. {name: "Alice"} é um atalho inválido do JavaScript — JSON requer {"name": "Alice"}.
  • Comentários JavaScript: JSON não suporta comentários // single-line ou /* block */. Se precisar de comentários em arquivos de configuração, considere JSONC ou JSON5 — ambos requerem um parser dedicado e não são intercambiáveis com JSON padrão.
  • Valores undefined: undefined é um conceito do JavaScript; não tem representação em JSON. Chaves com valor undefined são silenciosamente descartadas pelo JSON.stringify().
  • Caracteres especiais não escapados: Certos caracteres dentro de strings devem ser escapados: \" (aspas duplas), \\ (barra invertida), \n (nova linha), \t (tab). Novas linhas sem escape dentro de um literal de string não são permitidas.

JSON na Arquitetura de Software Moderna

JSON (JavaScript Object Notation) se tornou o formato universal de intercâmbio de dados na web. É usado em APIs REST, arquivos de configuração, bancos de dados NoSQL, filas de mensagens, e até como formato de armazenamento para muitas aplicações modernas. Entender JSON profundamente é essencial para todo desenvolvedor.

Tipos de Dados JSON e Suas Armadilhas

  • Números: Números JSON não distinguem entre inteiros e floats — 42 e 42.0 são válidos. Porém, inteiros muito grandes (além de 2^53) perdem precisão no JavaScript. Para IDs como Snowflake IDs, use strings.
  • Strings: Devem usar aspas duplas — aspas simples e crases são JSON inválido. Escapes Unicode como \u00e9 são suportados. Quebras de linha devem ser escapadas como \n.
  • null vs undefined: JSON suporta null mas não undefined. Ao serializar objetos JavaScript, valores undefined são silenciosamente removidos.
  • Sem Comentários: O JSON padrão não permite comentários. Use JSONC (JSON with Comments) ou JSON5 para arquivos de configuração que precisem de anotações.
  • Sem Vírgulas Finais: {"a": 1, "b": 2,} é JSON inválido — a vírgula final após 2 causará um erro de parsing.

Otimização de Performance JSON

Para aplicações que processam grandes quantidades de dados JSON, estas otimizações podem melhorar significativamente o desempenho:

  • Parsers de Streaming: Em vez de carregar um arquivo JSON inteiro na memória, use parsers de streaming (como JSONStream para Node.js ou ijson para Python) que processam dados incrementalmente.
  • Validação de Schema: Valide a estrutura JSON antecipadamente usando JSON Schema (via ajv para JavaScript ou jsonschema para Python) para falhar rapidamente com dados malformados antes do processamento.
  • Alternativas Binárias: Para comunicação interna entre serviços, considere formatos binários como Protocol Buffers, MessagePack ou CBOR. São 2–10× menores e mais rápidos de parsear que JSON.
  • Compressão: Para APIs JSON, habilite compressão gzip ou Brotli. JSON comprime extremamente bem (tipicamente 80–90% de redução) devido a nomes de chaves e estrutura repetitivos.

Perguntas Frequentes

O que é JSON e por que é usado?

JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados baseado em texto, derivado da sintaxe de objetos JavaScript. Usa pares chave-valor e listas ordenadas, sendo fácil para humanos lerem e para máquinas parsearem. JSON é o formato dominante para APIs REST, arquivos de configuração e armazenamento de dados porque praticamente todas as linguagens de programação têm um parser JSON nativo.

Como validar JSON online?

Cole seu JSON no campo de entrada acima e clique em Validar. A ferramenta usa JSON.parse() para verificar seu JSON e, se for inválido, reporta o erro de sintaxe exato com número de linha e coluna. Problemas comuns incluem vírgulas finais, strings entre aspas simples, chaves sem aspas e comentários JavaScript — nenhum deles é válido em JSON.

Qual é a diferença entre JSON e XML?

JSON é geralmente mais compacto, mais rápido de parsear e mais fácil de ler que XML. XML usa tags de abertura e fechamento verbosas e suporta atributos, namespaces e comentários. JSON mapeia diretamente para estruturas de dados (objetos e arrays) encontradas na maioria das linguagens. JSON substituiu em grande parte o XML para APIs REST, mas XML ainda é usado em serviços SOAP, formatos de documentos (SVG, DOCX) e sistemas corporativos.

Por que JSON não permite vírgulas finais?

Vírgulas finais (uma vírgula após o último item em um objeto ou array) não são válidas na especificação JSON (RFC 8259). Esta é uma decisão estrita de design para simplificar parsers. JavaScript em si permite vírgulas finais em literais de array e objeto, mas JSON.parse() lançará um SyntaxError. Se precisar de um formato mais permissivo, considere JSON5 ou JSONC (JSON com Comentários), embora estes necessitem de parsers especiais.

Ferramentas Relacionadas