A melhor forma de entender JSON é ler exemplos. Este guia percorre o formato JSON do chão para cima —— objetos simples, estruturas aninhadas, arrays, tipos mistos —— e depois mostra padrões reais de JSON que você vai encontrar em APIs, arquivos de configuração e bancos de dados. Cada exemplo é JSON válido, fácil de copiar e colar.
Use-os como arquivo json de exemplo para testes, fixtures ou documentação —— cada trecho abaixo é um exemplo de json real que você pode salvar com extensão .json e carregar diretamente.
O exemplo JSON mais simples
Qualquer valor JSON válido é um documento JSON completo. Os documentos JSON mais simples são primitivos:
"hello" // uma string
42 // um número
true // um booleano
null // nullNa prática, quase todo documento JSON que você encontra é um objeto ou um array.
Exemplo de objeto JSON
Um objeto JSON é uma coleção de pares chave-valor. As chaves precisam ser strings entre aspas duplas. Os valores podem ser de qualquer tipo JSON.
{
"id": 42,
"name": "Alice Chen",
"email": "alice@example.com",
"age": 30,
"active": true,
"score": 98.6,
"nickname": null
}Nota: a ordem das chaves em objetos JSON não é garantida —— os parsers podem retornar as chaves em qualquer ordem.
Exemplo de array JSON
Um array JSON é uma lista ordenada de valores. Os itens podem ser de tipos diferentes e a ordem é sempre preservada.
// Array de strings
["apple", "banana", "cherry"]
// Array de números
[1, 2, 3, 4, 5]
// Tipos mistos
[42, "hello", true, null, { "key": "value" }]
// Array de objetos (comum em respostas de API)
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" },
{ "id": 3, "name": "Carol" }
]Exemplo de JSON aninhado
Objetos e arrays podem ser aninhados em qualquer profundidade. Daí vem a expressividade do JSON.
{
"user": {
"id": 1001,
"name": "Alice Chen",
"address": {
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94102"
},
"tags": ["premium", "early-adopter"],
"preferences": {
"notifications": {
"email": true,
"sms": false,
"push": true
},
"theme": "dark"
}
}
}Exemplo de formato JSON: resposta de API REST
Uma resposta paginada típica de API tem essa cara:
{
"status": "success",
"data": {
"page": 1,
"per_page": 10,
"total": 47,
"total_pages": 5,
"items": [
{
"id": "prod_001",
"name": "Wireless Headphones",
"price": 89.99,
"currency": "USD",
"in_stock": true,
"categories": ["electronics", "audio"],
"rating": 4.7,
"reviews_count": 2341
},
{
"id": "prod_002",
"name": "USB-C Hub",
"price": 39.99,
"currency": "USD",
"in_stock": false,
"categories": ["electronics", "accessories"],
"rating": 4.2,
"reviews_count": 891
}
]
},
"meta": {
"request_id": "req_8f3a2c",
"timestamp": "2024-10-15T14:32:00Z"
}
}Exemplo de arquivo de configuração JSON
Arquivos de configuração em JSON são comuns na ferramentaria JavaScript. Aqui está uma estrutura típica de package.json:
{
"name": "my-app",
"version": "1.0.0",
"description": "A sample application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "tsc"
},
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"typescript": "^5.0.0",
"jest": "^29.0.0"
},
"engines": {
"node": ">=18.0.0"
}
}Formato de dados JSON: data e hora
JSON não tem tipo de data nativo. Datas são representadas como strings. ISO 8601 é o formato universalmente aceito:
{
"created_at": "2024-10-15T14:32:00Z", // datetime em UTC
"updated_at": "2024-10-15T14:32:00+08:00", // com offset de fuso
"birth_date": "1990-06-21", // só data
"meeting_time": "09:00:00" // só hora
}Alternativamente, alguns sistemas usam timestamps Unix (segundos desde a época) como números:
{
"created_at": 1728999120,
"expires_at": 1761057600
}JSON com campos opcionais e nulos
Use null para campos que existem mas não têm valor. Omita campos por completo se forem opcionais e estiverem ausentes.
{
"id": 5,
"name": "Bob",
"email": "bob@example.com",
"phone": null, // existe, mas não definido
"company": "Acme Corp",
"title": null // existe, mas não definido
// "fax" é totalmente omitido —— não se aplica
}Exemplos de erros JSON (e como corrigir)
Estes são erros comuns de formatação JSON:
// ❌ aspas simples (não é JSON válido)
{ 'name': 'Alice' }
// ✅ Correção: use aspas duplas
{ "name": "Alice" }
// ❌ Chave sem aspas
{ name: "Alice" }
// ✅ Correção: ponha aspas na chave
{ "name": "Alice" }
// ❌ Vírgula final
{ "a": 1, "b": 2, }
// ✅ Correção: remova a vírgula final
{ "a": 1, "b": 2 }
// ❌ Comentário JavaScript
{ "debug": true // habilita logging }
// ✅ Correção: remova o comentário
{ "debug": true }
// ❌ Booleano no estilo Python
{ "active": True }
// ✅ Correção: use minúsculas
{ "active": true }Se sua string JSON tem qualquer um desses erros, cole no JSON Fix para reparar e formatar automaticamente.
Exemplo de JSON Lines (NDJSON, jsonlines)
Para logs em streaming, datasets de ML e APIs em massa, a convenção é um valor JSON por linha separados por \n. O formato tem dois nomes —— jsonlines (de jsonlines.org) e NDJSON —— mas a especificação é a mesma:
{"event":"login","user":"ada","at":"2026-05-28T09:00:00Z"}
{"event":"view","user":"ada","page":"/dashboard"}
{"event":"logout","user":"ada","at":"2026-05-28T09:42:00Z"} Cada linha é parseada de forma independente. Não faça JSON.parse() no arquivo inteiro —— divida na quebra de linha e parseie linha a linha.
Exemplo de resposta OpenAPI
Uma spec OpenAPI define respostas usando um formato no estilo JSON Schema:
{
"openapi": "3.1.0",
"paths": {
"/users/{id}": {
"get": {
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["id", "email"],
"properties": {
"id": { "type": "integer" },
"email": { "type": "string", "format": "email" }
}
}
}
}
}
}
}
}
}
}Exemplos só-data e só-hora
ISO 8601 também define formas de data pura e hora pura —— úteis quando o horário do dia ou a data realmente não fazem sentido:
{
"birth_date": "1815-12-10", // só data
"office_hours": "09:00:00", // só hora
"started_at": "2026-05-28T09:00:00Z" // datetime completo, para contraste
}Exemplo de GeoJSON
GeoJSON é um formato padrão para dados geográficos baseado em JSON:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
},
"properties": {
"name": "San Francisco",
"country": "US",
"population": 873965
}
}Perguntas frequentes
Qual é um exemplo de JSON válido?
O mais simples é um único primitivo como 42 ou "hello", mas a maioria do JSON real é um objeto como { "name": "Alice", "age": 30, "active": true } ou um array desses objetos.
Como datas são representadas em JSON?
JSON não tem tipo de data. Datas são armazenadas como strings —— ISO 8601 ("2024-10-15T14:32:00Z") é a escolha universal —— ou como timestamps Unix numéricos.
Como represento um valor ausente em JSON?
Use null para um campo que existe mas não tem valor, e omita a chave por completo para campos que não se aplicam. JSON não tem undefined.
Como é um JSON aninhado?
Objetos e arrays podem conter outros objetos e arrays em qualquer profundidade —— veja os exemplos aninhado e de REST API acima. Para as regras subjacentes, veja O que é JSON?
Experimente esses exemplos
Copie qualquer um dos exemplos acima e cole nas ferramentas abaixo para explorar os dados:
- JSON Fix —— formate, valide e repare JSON
- JSON Diff —— compare dois exemplos JSON lado a lado
- O que é JSON? —— guia completo dos seis tipos de dado e da gramática JSON
- Como formatar JSON —— pretty-print JSON em JavaScript, Python, jq e no seu navegador
- JSON Stringify —— converta um valor JSON em um literal de string escapado