O que é JSON?
JSON (JavaScript Object Notation) é o formato leve de troca de dados padrão das APIs. Entenda a sintaxe, os tipos suportados, parse e stringify e as diferenças para o XML.

Toda vez que um site carrega o seu perfil, um app mostra a previsão do tempo ou dois serviços trocam informação por trás dos panos, há uma boa chance de os dados estarem viajando em JSON. A tese em uma frase: apesar de o nome vir do JavaScript, o JSON se tornou a língua franca de dados da web justamente por ser independente de linguagem — texto puro que qualquer sistema consegue ler, do navegador ao banco de dados. Especificado no início dos anos 2000 por Douglas Crockford, o formato virou o padrão de facto de comunicação entre APIs REST, entre frontend e backend e entre serviços que precisam trocar dados estruturados.
Neste artigo, você vai entender a sintaxe do JSON, os tipos de dados que ele suporta, o que ele deliberadamente não suporta, como usá-lo em JavaScript e outras linguagens, e as diferenças em relação ao XML.
No fundo, o JSON existe para resolver um problema simples: como fazer dois programas — talvez escritos em linguagens diferentes — trocarem dados estruturados sem se acoplarem. O caminho é quase sempre o mesmo:
O que é JSON: sintaxe e estrutura
O JSON é formado por dois tipos de estrutura: objetos (pares chave-valor entre chaves {}) e arrays (listas ordenadas de valores entre colchetes []). Essas estruturas podem ser aninhadas, permitindo representar dados complexos de forma hierárquica. As chaves são sempre strings entre aspas duplas. A especificação oficial está em json.org, mantida por Douglas Crockford, o criador do formato.
Um exemplo de objeto JSON simples representando um usuário:
{
"nome": "Gabriel",
"idade": 32,
"ativo": true,
"email": "gabriel@exemplo.com.br",
"enderecos": [
{
"tipo": "residencial",
"cidade": "São Paulo",
"estado": "SP"
},
{
"tipo": "comercial",
"cidade": "Campinas",
"estado": "SP"
}
],
"telefone": null
}Os seis tipos de dados do JSON
| Tipo | Exemplo | Observações |
|---|---|---|
| String | "texto aqui" | Sempre entre aspas duplas. Aspas simples não são válidas em JSON. |
| Número | 42, 3.14, -7 | Inteiro ou decimal. Não usa aspas. Não suporta NaN nem Infinity. |
| Booleano | true, false | Sempre em minúsculas. True ou False não são válidos. |
| Null | null | Representa ausência de valor. Sempre em minúsculas. |
| Array | [1, "dois", true] | Lista ordenada de valores. Pode misturar tipos. |
| Objeto | {"chave": "valor"} | Coleção de pares chave-valor. As chaves devem ser strings com aspas duplas. |
O que o JSON não suporta
Parte da simplicidade do JSON vem do que ele deliberadamente deixa de fora. O formato não tem comentários, não tem funções (só dados, nunca comportamento), não tem um tipo de data nativo (datas viajam como string, normalmente no padrão ISO 8601, e cabe a cada aplicação interpretá-las) e não tem undefined (a ausência de valor é representada por null). Chaves e strings usam obrigatoriamente aspas duplas — aspas simples quebram o parse. Entender essas ausências evita as armadilhas mais comuns de quem está começando.
JSON em JavaScript: parse e stringify
O JavaScript oferece dois métodos nativos para trabalhar com JSON. JSON.parse() converte uma string JSON em um objeto JavaScript — usado para interpretar dados recebidos de uma API. JSON.stringify() faz o caminho inverso: converte um objeto JavaScript em uma string JSON — usado para enviar dados a uma API ou guardar no localStorage.
// Recebendo dados de uma API (string JSON → objeto JS)
const resposta = '{"nome": "Gabriel", "idade": 32}';
const usuario = JSON.parse(resposta);
console.log(usuario.nome); // "Gabriel"
// Enviando dados para uma API (objeto JS → string JSON)
const dados = { produto: "Notebook", preco: 3500 };
const json = JSON.stringify(dados);
console.log(json); // '{"produto":"Notebook","preco":3500}'Esse par serializar/desserializar é a base de quase toda integração moderna: o mesmo JSON que sai de um stringify no frontend é lido por um parse (ou equivalente) no backend, e vice-versa. É também o formato do payload que trafega em webhooks.
JSON em outras linguagens
Uma das razões do sucesso do JSON é o suporte nativo em praticamente todas as linguagens modernas. Em Python, json.loads() e json.dumps() fazem o parse e a serialização. Em PHP, json_decode() e json_encode(). Em Java, bibliotecas como Jackson e Gson são amplamente usadas. Em Go, o pacote encoding/json da biblioteca padrão. Até bancos de dados suportam JSON nativamente — PostgreSQL, MySQL 5.7+ e SQLite 3.38+ permitem armazenar e consultar dados JSON diretamente, sem uma camada de conversão.
JSON vs. XML: por que o JSON venceu na web
O XML (eXtensible Markup Language) foi o padrão dominante de troca de dados na web durante os anos 2000. O JSON o substituiu na maioria dos contextos por razões práticas: é mais compacto, mais fácil de ler e escrever, nativo no JavaScript (sem parser adicional) e mais simples de depurar. A verbosidade do XML vem de repetir o nome de cada campo em uma tag de abertura e outra de fechamento, enquanto o JSON escreve a chave uma única vez.
| Aspecto | JSON | XML |
|---|---|---|
| Sintaxe | Chaves e colchetes, mínima | Tags de abertura e fechamento |
| Verbosidade | Compacto | Verboso (repete o nome do campo) |
| Tipos de dados | String, número, booleano, null, array, objeto | Tudo é texto (sem tipos nativos) |
| No JavaScript | Nativo (parse/stringify) | Exige um parser (DOM, XPath) |
| Comentários | Não suporta | Suporta |
| Uso típico hoje | APIs REST, configs, troca de dados | SOAP legado, documentos, configs com namespace |
O XML ainda brilha em alguns cenários — documentos com esquema estrito, arquivos de configuração com namespaces e integração com sistemas SOAP legados. Mas, para APIs REST modernas, o JSON é o padrão.
Perguntas frequentes sobre JSON
JSON só funciona com JavaScript?
Não. O nome vem da sintaxe de objetos do JavaScript, mas o JSON é apenas texto e é independente de linguagem. Python, PHP, Java, Go, C#, Ruby e praticamente toda linguagem moderna têm bibliotecas nativas para ler e gerar JSON. É justamente por isso que ele funciona como formato universal de troca de dados entre sistemas escritos em linguagens diferentes.
JSON aceita comentários?
Não. A especificação oficial não permite comentários — é uma das críticas mais comuns ao formato. Se você tentar adicionar comentários no estilo // comentário ou /* comentário */ em um arquivo .json puro, o parser vai falhar. Para arquivos de configuração que precisam de comentários, alternativas como JSONC (JSON with Comments, usado pelo VS Code no settings.json) ou YAML são mais adequadas. Em APIs, se precisar registrar uma nota, use um campo comum como "_comentario": "explicação".
Qual a diferença entre JSON e YAML?
JSON e YAML são formatos de serialização de dados com casos de uso sobrepostos, mas diferentes. O JSON é estrito, amplamente suportado, rápido para fazer parse e ideal para APIs. O YAML é mais legível por humanos (usa indentação em vez de chaves e colchetes), suporta comentários nativamente e é o formato preferido para arquivos de configuração — como o docker-compose.yml e os manifestos Kubernetes. Todo JSON válido é tecnicamente YAML válido, mas o inverso não é verdadeiro. Para APIs: JSON. Para configuração de devops e infraestrutura: YAML.
Como validar um JSON?
Existem várias opções para validar se um JSON está bem formatado. Online: JSONLint (jsonlint.com) e JSON Formatter (jsonformatter.curiousconcept.com) são ferramentas gratuitas para colar e validar JSON no navegador. No VS Code: abrir um arquivo .json faz o editor destacar erros de sintaxe automaticamente. Via terminal: python3 -m json.tool arquivo.json valida e formata o JSON com indentação legível. Para validação de estrutura (e não apenas de sintaxe), o JSON Schema permite definir e conferir o esquema esperado dos dados.
O que é JSON Schema?
JSON Schema é uma especificação para descrever e validar a estrutura de documentos JSON. Funciona como um contrato: você define quais campos são obrigatórios, quais tipos cada campo aceita, intervalos válidos para números, formatos para strings (e-mail, URL, data) e outras restrições. Ferramentas de validação verificam se um documento está em conformidade com o schema definido. É amplamente usado para validar requisições de API, gerar documentação automática (Swagger/OpenAPI se apoia em JSON Schema) e garantir contratos de dados entre sistemas. O site oficial do JSON Schema reúne a especificação completa e ferramentas de validação.
Conclusão
O JSON se tornou o formato de troca de dados padrão da web moderna justamente por combinar simplicidade com poder: a sintaxe é mínima, o suporte é universal e a curva de aprendizado é baixa. Dominar JSON — sintaxe, tipos, o que ele não suporta, parse, stringify e JSON Schema — é uma habilidade fundamental para qualquer desenvolvedor web, independentemente da linguagem de programação utilizada.
Para mais conteúdos sobre desenvolvimento e tecnologia, explore os artigos de Desenvolvimento no atraca.com.br.


