DevBento logoDevBento
Ferramentas/Formatador e Validador de JSON/Formatar Resposta de API JSON

Formatar Resposta de API JSON

Formate uma resposta de API JSON minificada com indentação correta. Regras de indentação, uso de jq, compensações de minificação e erros de sintaxe comuns.

Carregando editor...

Carregando editor...

Enviar para:
Ferramentas Relacionadas
b64Codificador e Decodificador Base64
Codifique e decodifique strings Base64 online. Lida com texto UTF-8, emoji e dados binários com suporte completo de ida e volta. Sem servidor, sem cadastro.
jwtDecodificador de JWT
Decode the JWT you're parsing
%20Codificador de URL e Codificador de Entidades
Codifique texto para URLs com encodeURIComponent ou encodeURI e escape caracteres especiais HTML para entidades nomeadas ou numéricas. Tudo no navegador.
+/-Comparador de Texto Online (Diff Checker)
Compare dois blocos de texto em vista lado a lado ou inline com destaque a nível de caractere. Encontre adições, remoções e alterações instantaneamente.
shaGerador de Hashes
Gere hashes MD5, SHA-1, SHA-256 e SHA-512 a partir de texto ou arquivos. Usa Web Crypto API nativa para SHA e JavaScript puro para MD5, tudo no navegador.
</>Formatador de SQL / CSS / HTML
Formaté e minifique consultas SQL, folhas de estilo CSS e markup HTML com realce de sintaxe. Indente, embeleze ou comprima código no seu navegador.
tsGerador de JSON para TypeScript, Go, Python, Zod
Generate TypeScript types from your JSON
ymlConversor JSON / YAML / TOML / CSV / XML / HTML
Converta entre JSON, YAML, TOML, CSV, XML, HTML, Markdown e .env instantaneamente no navegador. Cole arquivos de configuração ou respostas de API REST.

Resposta Formatada

Aplicar um formatador à entrada minificada produz:

{
  "status": "success",
  "data": {
    "users": [
      {
        "id": 1,
        "name": "Alice Chen",
        "email": "alice@example.com",
        "role": "admin",
        "created_at": "2024-01-15T08:30:00Z"
      },
      {
        "id": 2,
        "name": "Bob Martinez",
        "email": "bob@example.com",
        "role": "editor",
        "created_at": "2024-03-22T14:15:00Z"
      },
      {
        "id": 3,
        "name": "Carol Williams",
        "email": "carol@example.com",
        "role": "viewer",
        "created_at": "2024-06-10T11:45:00Z"
      }
    ],
    "total": 3,
    "page": 1,
    "per_page": 25
  },
  "meta": {
    "request_id": "req_abc123",
    "response_time_ms": 42
  }
}

A estrutura é imediatamente legível: um envelope de sucessó contendo uma lista paginada de usuários mais metadados da requisição.

Por Que o JSON Formatado Importa para Depuração

Quando você usa curl para consultar uma API e recebe um muro de JSON minificado, a primeira coisa que faz é passá-lo por um formatador. A razão é prática: estruturas aninhadas são invisíveis em uma única linha. Sem indentação, você não pode escanear uma chave faltante, notar um valor null ou verificar o comprimento de um array.

O JSON formatado torna várias tarefas de depuração muito mais rápidas:

Estruturas Comuns de Resposta de API REST

O exemplo acima segue um padrão amplamente usado: um campo status no nível superior, um objeto data contendo o payload real é um objeto meta com informações de nível de requisição. Variações deste padrão aparecem constantemente:

Envelope JSend

{
  "status": "success",
  "data": { ... }
}

Envelope JSON:API

{
  "data": [ ... ],
  "links": { "next": "...", "self": "..." },
  "meta": { "total": 42 }
}

Resposta de erro

{
  "status": "error",
  "code": "RESOURCE_NOT_FOUND",
  "mensagem": "User 99 does not exist",
  "request_id": "req_xyz789"
}

Formatar qualquer um destes torna a estrutura do envelope imediatamente óbvia, o que ajuda quando você está escrevendo um cliente e precisa entender qual caminho percorrer para alcançar os dados desejados.

Convenções de Indentação

As duas escolhas dominantes são 2 espaços e 4 espaços. Tabulações também são espaço em branco JSON válido mas menos comuns em configuração compartilhada.

2 espaços é o padrão em muitas ferramentas JavaScript. JSON.stringify(obj, null, 2) e jq ambos produzem saída de 2 espaços. Mantém estruturas aninhadas compactas, o que importa se você trabalha rotineiramente com JSON profundamente aninhado.

4 espaços é a convenção Python. json.dumps(obj, indent=4) é o snippet Python mais comum que você encontrará. Também é o padrão em muitos formatadores de IDE.

Escolha com base no que sua equipe já usa. Se você tem um .editorconfig ou uma configuração Prettier de nível de projeto, ela já específica o tamanho da indentação. Use isso. Não misture larguras de indentação no mesmo arquivo ou no mesmo repositório.

Formatando JSON na Linha de Comando

jq é a ferramenta padrão para formatação e consulta de JSON na linha de comando. Instale uma vez (brew install jq ou apt install jq) e você a usará constantemente.

Formatar uma string bruta:

echo '{"name":"Alice","role":"admin"}' | jq .

Formatar um arquivo:

jq . response.json

Formatar uma resposta curl inline:

curl -s https://api.example.com/users | jq .

Extrair um valor aninhado enquanto formata a resposta:

curl -s https://api.example.com/users | jq '.data.users[0].email'

Se jq não estiver disponível, a biblioteca padrão do Python cobre o casó básico:

echo '{"name":"Alice"}' | python3 -m json.tool

Ou, usando Node.js:

node -e "let d=''; process.stdin.on('data', c => d+=c); process.stdin.on('end', () => console.log(JSON.stringify(JSON.parse(d), null, 2)))" < file.json

Validando JSON Enquanto Formata

Um formatador que analisa JSON antes de re-emiti-lo também válida a entrada. Se seu JSON tem um erro de sintaxe (uma vírgula final, uma chave sem aspas, um parêntese faltante), o formatador o pegará e mostrará onde a análise falhou. Isso é um ciclo de feedback mais rápido que implantar código e esperar por um erro de análise JSON em tempo de execução.

Erros comuns de sintaxe JSON:

Se você precisa de um formato similar a JSON com comentários e vírgulas finais, veja JSON5 ou JSONC, mas esteja ciente que analisadores JSON padrão os rejeitarão.

🔒

Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.

© 2026 devbento.dev · construído localmenteChangelog