Valide o JSON antes das requisições de API
Uma validação rápida antes de enviar uma requisição de API ajuda a separar problemas de sintaxe JSON de erros de autenticação, schema e backend.
Por que validar antes de enviar
Quando uma requisição de API falha, a mensagem pode apontar para autenticação, permissões, validação de schema ou JSON malformado. Validar o body JSON antes elimina uma classe inteira de falhas antes da requisição chegar ao servidor. Também facilita revisar comandos cURL copiados, bodies do Postman, samples de webhooks e testes de integração.
Checks de sintaxe que vale rodar
Uma validação JSON estrita deve confirmar que o body parseia como JSON e que a saída formatada bate com o que você quer enviar.
- Toda string e toda chave de objeto usa aspas duplas
- Sem comentários ou vírgulas finais
- Booleanos são true ou false, não True ou False
- Valores ausentes são null ou chaves omitidas, não undefined
- O valor de nível superior bate com a expectativa do endpoint
Headers também contam
Um body JSON válido ainda pode falhar se a requisição não declarar o Content-Type correto. Para a maioria das APIs JSON, mande Content-Type: application/json. Se o endpoint também checa Accept, inclua Accept: application/json para cliente e servidor concordarem no formato.
Body de requisição com erro
{ userId: 42, active: True, tags: ['beta',], }
Body de requisição corrigido
{ "userId": 42, "active": true, "tags": ["beta"] }
Depois da validação de sintaxe
A validação de sintaxe só prova que o documento é parseável. Em requisições de produção, verifique também o schema: campos obrigatórios, campos desconhecidos, tipos, tamanhos de array, valores de enum, strings de data e se identificadores numéricos deveriam ser números ou strings.
Dica de debug
Se o servidor continua rejeitando um JSON válido, compare o body formatado com um exemplo conhecido. Um diff semântico de JSON encontra mudanças reais de valores ignorando a ordem das chaves, especialmente útil quando payloads são gerados por ferramentas diferentes.
Um pequeno wrapper de fetch + Ajv
Valide o corpo da resposta contra um schema conhecido antes de entregá-lo ao código da aplicação. Compile o schema uma vez no load do módulo e proteja cada call: const validate = ajv.compile(schema); const res = await fetch(url); const data = await res.json(); if (!validate(data)) throw new Error("Schema mismatch: " + ajv.errorsText(validate.errors)); return data; — quebras de contrato upstream aparecem na borda, não cinco camadas adentro.
Guias de reparação de JSON
Núcleos temáticos
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guias específicos
- Como decodificar strings Base64 (e payloads JWT)
- Codificação URL: codifique parâmetros de consulta e caminhos
- Converter YAML para JSON (e evitar erros de indentação)
- Converter JSON para CSV: achatar um array de objetos
- Converter JSON para XML: raiz, atributos e arrays
- Escapar JSON como literal de string (e decodificar JSON com codificação dupla)
- Corrigir vírgulas finais em JSON
- Corrigir aspas simples em JSON
- Corrigir chaves sem aspas em JSON
- Reparar JSON gerado por LLM
- Corrigir o erro de parse JSON: Expected Property Name
- JSON x literal de objeto JavaScript
- Formatador JSON x JSON Repair
- Corrigir erros JSON Unexpected Token
- Conversor de JSON para objeto JavaScript