Como Formatar JSON: Guia Completo
JSON (JavaScript Object Notation) é a língua franca das APIs web. Todo desenvolvedor lida com ele diariamente — debugando respostas de API, escrevendo arquivos de configuração ou passando dados entre serviços. Mesmo assim, a maioria de nós cola one-liners feios em ferramentas online aleatórias sem pensar duas vezes.
Este guia cobre tudo: formatação para legibilidade, validação de estrutura, minificação para produção e as ferramentas que tornam tudo mais fácil.
Por Que Formatação JSON Importa
Uma API retorna isso:
{"users":[{"id":1,"name":"Alice","email":"alice@example.com","roles":["admin","editor"]},{"id":2,"name":"Bob","email":"bob@example.com","roles":["viewer"]}]}Boa sorte lendo isso. Agora formatado:
{
"users": [
{
"id": 1,
"name": "Alice",
"email": "alice@example.com",
"roles": ["admin", "editor"]
},
{
"id": 2,
"name": "Bob",
"email": "bob@example.com",
"roles": ["viewer"]
}
]
}A diferença é imediata. Você consegue identificar campos faltando, tipos errados e problemas estruturais em segundos.
Formatando no Terminal
Se você tem o jq instalado:
curl https://api.example.com/users | jq .One-liner Python:
echo '{"a":1}' | python3 -m json.toolNode.js:
echo '{"a":1}' | node -e "process.stdin.on('data',d=>console.log(JSON.stringify(JSON.parse(d),null,2)))"Validando JSON
Erros JSON comuns que quebram o parsing:
- Vírgula final:
{"a": 1,}— inválido em JSON (válido em JS) - Aspas simples:
{'a': 1}— JSON exige aspas duplas - Chaves sem aspas:
{a: 1}— chaves precisam ser strings - Comentários:
// isso quebra— JSON não tem comentários
Quando você recebe "SyntaxError: Unexpected token", verifique esses primeiro. A maioria das ferramentas de formatação valida automaticamente e mostra exatamente onde está o erro.
Minificação para Produção
JSON formatado é ótimo para humanos. Para payloads de produção, minificação importa:
// 247 bytes formatado
{
"users": [
{ "id": 1, "name": "Alice" }
]
}
// 39 bytes minificado
{"users":[{"id":1,"name":"Alice"}]}Isso é uma redução de 84%. Para respostas de API servidas milhões de vezes, a economia de bandwidth se acumula rápido.
Indentação: 2 Espaços vs 4 Espaços vs Tabs
Isso é quase um debate religioso, mas aqui vai o lado prático:
- 2 espaços: Mais popular no ecossistema JS/TS. Padrão do Google, Airbnb e Prettier.
- 4 espaços: Comum em Python, Java. Mais fácil de ler estruturas profundamente aninhadas.
- Tabs: Acessível (usuários definem a largura), mas raro em JSON.
JSON.stringify(data, null, 2) — o segundo argumento é um replacer, o terceiro é a indentação.
Além da Formatação: jq para Power Users
Uma vez confortável com JSON, o jq abre um mundo de manipulação de dados:
# Extrair só nomes
curl api.example.com/users | jq '.users[].name'
# Filtrar por role
jq '.users[] | select(.roles[] == "admin")'
# Contar itens
jq '.users | length'É o grep para JSON, e é indispensável para debugar APIs pelo terminal.
Experimente agora: Formate seu JSON instantaneamente com nossa ferramenta gratuita — cole, clique, pronto.