Como validar JSON
- Cole o JSON ou abra um arquivo. A validação roda automaticamente enquanto você digita.
- Uma mensagem verde “JSON válido” com estatísticas significa que o documento está correto. Caso contrário, leia o erro: ele indica a linha, a coluna e o que era esperado ali.
- Corrija a linha destacada ou clique em Corrigir e depois use Formatar para deixar o resultado fácil de ler.
Erros comuns de JSON e como corrigi-los
| Erro | Exemplo | Correção |
|---|---|---|
| Vírgula final | [1, 2, ] | Remova a vírgula antes de ] ou } |
| Aspas simples | {'name': 'Ada'} | Use aspas duplas: {"name": "Ada"} |
| Chave sem aspas | {name: "Ada"} | Coloque a chave entre aspas: {"name": "Ada"} |
| Vírgula ausente | {"a": 1 "b": 2} | Adicione uma vírgula entre as propriedades |
| Comentário | // settings | JSON não tem comentários – remova-os |
| Quebra de linha em uma string | "line 1⏎line 2" | Escreva \n em vez de uma quebra de linha real |
| Valor inválido | undefined, NaN, True | Use null, um número, true ou false |
| Zero à esquerda | {"zip": 01234} | Escreva 1234 ou mantenha como texto: "01234" |
| Colchete ausente | {"a": [1, 2} | Feche cada [ com ] e cada { com } |
O que torna um JSON válido
O JSON é definido na RFC 8259. Um documento válido segue algumas regras rígidas:
- Ele contém exatamente um valor de nível superior, geralmente um objeto
{}ou um array[]. - Os membros de um objeto são pares
"key": valueseparados por vírgulas; as chaves são sempre strings entre aspas duplas. - Strings usam aspas duplas; dentro delas, só são permitidos os escapes
\" \\ \/ \b \f \n \r \te\uXXXX. - Os números são decimais: sem zeros à esquerda, sem sinal
+, sem hexadecimal, semNaNouInfinity. true,falseenullsão escritos em minúsculas.- Espaços, tabulações e quebras de linha são permitidos entre os tokens, mas comentários não.
Validar JSON na linha de comando
- Python:
python -m json.tool file.jsonmostra a linha e a coluna do primeiro erro. - jq:
jq empty file.jsonencerra com uma mensagem de erro se o arquivo for inválido. - Node.js:
node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))"
Perguntas frequentes
Qual é a diferença entre um validador JSON e um linter JSON?
Um validador verifica se o texto segue a sintaxe JSON. Um linter normalmente também impõe um estilo consistente. Este validador de JSON segue rigorosamente a RFC 8259 e, com o Formatar, também deixa a indentação consistente.
Ele valida com base em um JSON Schema?
Esta página verifica a sintaxe. Para descrever a estrutura esperada dos seus dados, crie um schema a partir de um documento de exemplo com o nosso gerador de JSON Schema.
Por que meu JSON é válido aqui, mas é rejeitado por outro programa?
Os programas costumam esperar uma estrutura específica (certas chaves ou tipos), uma codificação específica, como UTF-8 sem BOM (byte order mark), ou números dentro de um intervalo limitado. Um JSON sintaticamente válido ainda pode violar essas regras da aplicação.
JSON com comentários (JSONC) é válido?
Não. O JSON padrão não permite comentários. Alguns editores os aceitam em arquivos de configuração (JSONC), mas APIs e o JSON.parse não. O Corrigir remove os comentários para você.