PureTools

Como Formatar JSON: Guia Completo

PureTools Team· 7 min de leitura
Como Formatar JSON: Guia Completo

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.tool

Node.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.