Erros Comuns de Sintaxe JSON e Como Corrigi-los Usando um Validador
Erros Comuns de JSON
As regras estritas de sintaxe do JSON significam que até mesmo um único caractere mal posicionado pode quebrar um documento inteiro. Compreender os erros JSON mais comuns ajudará você a depurar mais rápido e a evitar repetir os mesmos erros. Abaixo estão os problemas mais frequentes que os desenvolvedores encontram, com explicações claras e correções para cada um.
1. Vírgulas Finais
Erro: Unexpected token no final de um objeto ou array
Vírgulas finais são permitidas em objetos e arrays JavaScript, mas são estritamente proibidas em JSON.
JSON inválido:
{
"name": "Alice",
"age": 30,
}
Correção: remova a vírgula após o último item.
{
"name": "Alice",
"age": 30
}
Arrays com vírgulas finais:
// Invalid
[1, 2, 3,]
// Valid
[1, 2, 3]
2. Aspas Ausentes ou Incorretas em Chaves
Erro: Unexpected identifier ou Expected double-quoted property name
O JSON exige que todas as chaves de objetos estejam entre aspas duplas. Chaves com aspas simples e chaves sem aspas não são válidas, embora funcionem em JavaScript.
JSON inválido:
{
name: "Alice",
'occupation': "Engineer"
}
Correção: sempre coloque as chaves entre aspas duplas.
{
"name": "Alice",
"occupation": "Engineer"
}
3. Usando Aspas Simples para Valores de String
Erro: Unexpected identifier ou Unterminated string
Assim como as chaves, os valores de string devem usar aspas duplas em JSON. Aspas simples não são válidas.
JSON inválido:
{ "greeting": 'Hello, world!' }
Correção: substitua as aspas simples por aspas duplas.
{ "greeting": "Hello, world!" }
Dica: se a sua string contiver aspas duplas, escape-as com uma barra invertida: "He said, \"Hello\"".
4. Caracteres Especiais Não Escapados
Erro: Unexpected token ou Invalid character
Certos caracteres devem ser escapados em strings JSON: aspas duplas ("), barras invertidas (\) e caracteres de controle.
JSON inválido:
{
"path": "C:\Users\Documents\file.json",
"quote": "He said "hello""
}
Correção: escape barras invertidas e aspas duplas corretamente.
{
"path": "C:\\Users\\Documents\\file.json",
"quote": "He said \"hello\""
}
Lista Completa de Sequências de Escape de JSON
| Sequência | Representa |
|----------|-----------|
| \" | Aspa dupla |
| \\ | Barra invertida |
| \/ | Barra normal |
| \b | Backspace |
| \f | Avanço de formulário |
| \n | Nova linha |
| \r | Retorno de carro |
| \t | Tabulação |
| \uXXXX | Caractere Unicode (por exemplo, é para e) |
5. Formatos Numéricos Inválidos
Erro: Unexpected number ou Invalid number
O JSON tem regras específicas para como os números podem ser formatados:
- Zeros à esquerda não são permitidos (
01é inválido) - Um único zero à esquerda é permitido apenas para o número
0 - Números não podem ter pontos finais (
10.é inválido) - Formatos hexadecimal, octal e binário não são suportados
JSON inválido:
{
"invalid1": 01,
"invalid2": 10.,
"invalid3": 0xFF,
"invalid4": 1,000
}
Correção:
{
"valid1": 1,
"valid2": 10.0,
"valid3": 255,
"valid4": 1000
}
6. Valores Inválidos: undefined, NaN, Infinity
Erro: Unexpected token para undefined, NaN, Infinity
O JavaScript tem valores que não têm equivalente em JSON. Eles causarão erros de parsing:
JSON inválido:
{
"undefinedVal": undefined,
"notANumber": NaN,
"infinity": Infinity
}
Correção: substitua por valores JSON válidos ou use uma convenção.
{
"undefinedVal": null,
"notANumber": null,
"infinity": 1.7976931348623157e+308
}
7. Vírgulas Extras ou Vírgulas Ausentes
Erro: Expected comma ou Unexpected token
Em JSON, as vírgulas devem separar cada par de chave/valor e cada elemento de array, mas não devem aparecer após o último item.
Vírgula ausente (inválido):
{
"name": "Alice"
"age": 30
}
Correção: adicione a vírgula ausente.
{
"name": "Alice",
"age": 30
}
8. Problemas de Estrutura Profundamente Aninhada
Erro: Maximum call stack size exceeded ou timeout do analisador
Embora não seja um erro de sintaxe, JSON profundamente aninhado (10+ níveis) pode causar problemas de desempenho e tornar a depuração extremamente difícil.
Estrutura problemática:
{
"level1": {
"level2": {
"level3": {
"level4": {
"level5": {
"level6": {
"value": "too deep"
}
}
}
}
}
}
}
Melhor abordagem: achate a estrutura ou use referências.
{
"users": {
"alice": { "role": "admin" }
},
"permissions": {
"admin": ["read", "write", "delete"]
}
}
9. Chaves de Abertura ou Fechamento Ausentes
Erro: Expected ',' or '}' ou Unexpected end of JSON input
Chaves e colchetes sem correspondência são uma fonte comum de erros JSON, especialmente em arquivos JSON grandes ou escritos à mão.
JSON inválido:
{
"name": "Alice",
"items": [1, 2, 3
}
Correção: garanta que cada { tenha um } correspondente e que cada [ tenha um ] correspondente.
{
"name": "Alice",
"items": [1, 2, 3]
}
Dica profissional: indente seu JSON corretamente para combinar visualmente chaves e colchetes de abertura e fechamento. Um formatador de JSON pode fazer isso automaticamente.
Como Depurar Erros de JSON com Eficácia
- Use um validador de JSON -- cole seu JSON em um validador de JSON gratuito para obter a linha e a coluna exatas do primeiro erro.
- Valide incrementalmente -- para arquivos grandes, valide uma seção de cada vez para isolar o erro.
- Fique atento a artefatos de copiar e colar -- caracteres invisíveis, aspas inteligentes e espaços não separáveis frequentemente se infiltram de processadores de texto ou páginas web.
- Verifique a codificação de caracteres -- garanta que seu arquivo seja salvo como UTF-8. Outras codificações podem produzir erros invisíveis.
- Use um linter -- ferramentas como ESLint com o plugin
jsondetectam erros JSON durante o desenvolvimento.
Lembre-se: os analisadores de JSON normalmente relatam apenas o primeiro erro de sintaxe. Corrija esse erro, revalide e repita até que o documento passe. Nossa ferramenta Formatador e Validador de JSON fornece mensagens de erro instantâneas e detalhadas para acelerar esse processo.