Sobre esta ferramenta
Um erro de sintaxe em um arquivo de fixture ou em um body de requisição é uma das causas mais comuns de falhas de teste confusas. Este validador verifica o JSON segundo o padrão estrito e informa o primeiro erro com linha e coluna, além de um resumo da estrutura do documento (objetos, arrays, chaves e profundidade) quando ele é válido. Para validar o formato dos dados, e não a sintaxe, use o Validador de JSON Schema.
Como usar
- Cole o JSON que quer verificar.
- Veja o banner de resultado: verde significa válido, vermelho mostra a mensagem de erro e a localização.
- Corrija o ponto indicado e o resultado é atualizado enquanto você digita.
O que conta como JSON válido
O validador aplica a gramática estrita da RFC 8259, as mesmas regras que JSON.parse usa. Um documento é um único valor: um objeto, um array, uma string, um número, true, false ou null. Um "hello" ou 42 isolado é, portanto, JSON válido, mesmo que a maioria das APIs retorne um objeto.
Chaves duplicadas são uma armadilha comum. O padrão diz que os nomes de um objeto DEVERIAM ser únicos, mas não proíbe repetições, e JSON.parse mantém silenciosamente o último valor. Uma checagem de sintaxe não vai acusar {"id": 1, "id": 2}, então fique atento a duplicatas no code review ou com um linter.
Como ler a mensagem de erro
Cada navegador redige os erros de parse de um jeito. O Chrome mostra mensagens como “Unexpected token” ou “Expected property name” com uma posição, e o Firefox dá linha e coluna. Em todos os casos, a localização é onde o parser desistiu, que geralmente fica logo depois do erro real: uma vírgula faltando, aspas não fechadas ou um colchete solto na linha anterior.
Validando JSON em testes automatizados
- Playwright:
await response.json()lança erro quando o body não é JSON válido, então o teste falha nessa linha. Verifique tambémresponse.headers()['content-type'], porque um servidor pode enviar texto JSON rotulado como HTML. - REST Assured: valide
.contentType(ContentType.JSON)e depois verifique a estrutura commatchesJsonSchemaInClasspath("order-schema.json")do módulo json-schema-validator. - Postman:
pm.response.json()lança erro com JSON inválido, epm.response.to.be.jsonvalida o content type. - Para formato e tipos (campos obrigatórios, formatos, enums), passe para o Validador de JSON Schema. A validação de sintaxe só prova que o texto pode ser interpretado.
Perguntas frequentes: Validador JSON
Qual a diferença entre validação JSON e validação por schema?
A validação de sintaxe verifica se o texto é JSON bem formado. A validação por schema verifica se o JSON bem formado tem os campos, tipos e restrições esperados, como “id é um inteiro obrigatório”.
Por que o erro aponta para depois do erro real?
Os parsers informam onde não conseguiram mais continuar. Uma vírgula ou aspas faltando geralmente estão logo antes da posição informada.