Expected double-quoted property name in JSON at position N (line L column C)
O parser leu uma vírgula dentro de um objeto e depois esperava outro nome de propriedade, mas encontrou a chave de fechamento. Em outras palavras: há uma vírgula sem nada depois. A mensagem descreve o que o parser queria em vez do que você fez de errado, e por isso a correção não fica óbvia pela redação.
Você também pode ver isso escrito assim
- trailing comma json error
- trailing comma not allowed in json
O V8 reescreveu a maior parte das suas mensagens de erro de JSON em 2022. A redação antiga ainda é o que a maioria dos resultados de busca mostra, mas nenhum runtime atual a emite.
Cole o seu JSON e veja exatamente onde ele quebra
Nada do que você cola sai do seu navegador. A lista de permissões connect-src transforma isso em uma garantia do navegador, e não em uma promessa. Confira você mesmo
O que realmente causa isso
Ordenados por quantas vezes cada um acaba sendo a resposta.
-
01 Uma vírgula sobrando antes da chave de fechamento
Válida em JavaScript, em JSON5 e em JSONC. Não válida em JSON. Editores que formatam objetos JavaScript automaticamente acrescentam essas vírgulas sem avisar.
Quebra
{ "name": "Priya", "role": "admin", }Funciona
{ "name": "Priya", "role": "admin" } -
02 Duas vírgulas seguidas
Normalmente ficam para trás depois de apagar uma propriedade.
Quebra
{ "a": 1,, "b": 2 }Funciona
{ "a": 1, "b": 2 } -
03 Um comentário onde deveria estar um nome de propriedade
O JSON não tem comentários. Uma linha // ou um bloco /* */ dentro de um objeto produz exatamente esta mensagem, porque o parser esperava uma chave entre aspas e encontrou uma barra.
O mesmo erro em outros runtimes
O problema de fundo é idêntico; só muda a redação. Se um colega reportar uma dessas mensagens, ele está olhando exatamente para a mesma coisa que você.
| V8, trailing comma in an ARRAY | Unexpected token ']', "[1,2,]" is not valid JSON |
|---|---|
| Python 3.13 and later | Illegal trailing comma before end of object: line 1 column 7 (char 6) |
| Python 3.12 and earlier | Expecting property name enclosed in double quotes: line 1 column 7 (char 6) |
Perguntas frequentes
- Por que a mensagem é diferente para arrays?
- Porque o parser está em outro estado. Dentro de um objeto ele espera uma chave entre aspas, e é o que ele diz. Dentro de um array ele espera um valor e encontra o colchete de fechamento, o que dá Unexpected token ']', "[1,2,]" is not valid JSON. O mesmo erro, duas mensagens completamente diferentes.
- O Python dava outro erro para isso antes. Mudou?
- Mudou. O Python 3.13 acrescentou mensagens dedicadas: "Illegal trailing comma before end of object" e a equivalente para arrays. No 3.12 e anteriores a mesma entrada dá "Expecting property name enclosed in double quotes". Qualquer guia que não separe por versão está errado para metade dos leitores.
- Meu arquivo de configuração precisa de comentários e vírgulas sobrando. Que opções eu tenho?
- Use JSONC, que é o que o VS Code usa nas próprias configurações e que permite comentários e vírgulas sobrando, ou JSON5, que permite bem mais. Os dois precisam de um parser que os suporte. A nossa ferramenta de reparo converte qualquer um dos dois de volta para JSON estrito.
Conserte agora
Cole o payload na ferramenta acima, ou vá direto para a que foi feita para este trabalho.
Remover automaticamente