Expected double-quoted property name in JSON at position N (line L column C)
Il parser ha letto una virgola dentro un oggetto e poi si aspettava un altro nome di proprietà, ma ha trovato la graffa di chiusura. In altre parole: c’è una virgola con nulla dopo. Il messaggio descrive ciò che il parser voleva anziché ciò che hai sbagliato, ed è per questo che la soluzione non si ricava dalla formulazione.
Potresti vederlo scritto anche così
- trailing comma json error
- trailing comma not allowed in json
V8 ha riscritto quasi tutti i suoi messaggi di errore JSON nel 2022. La formulazione più vecchia resta quella che mostrano quasi tutti i risultati di ricerca, ma nessun runtime attuale la emette.
Incolla il tuo JSON e vedi esattamente dove si rompe
Nulla di ciò che incolli lascia il tuo browser. L’allowlist connect-src ne fa una garanzia del browser anziché una promessa. Verificalo tu stesso
Che cosa lo provoca davvero
In ordine di quanto spesso ciascuno si rivela essere la risposta.
-
01 Una virgola finale prima della graffa di chiusura
Legale in JavaScript, in JSON5 e in JSONC. Non legale in JSON. Gli editor che riformattano automaticamente gli oggetti JavaScript le aggiungono senza avvisare.
Si rompe
{ "name": "Priya", "role": "admin", }Funziona
{ "name": "Priya", "role": "admin" } -
02 Due virgole di fila
Di solito restano lì dopo aver cancellato una proprietà.
Si rompe
{ "a": 1,, "b": 2 }Funziona
{ "a": 1, "b": 2 } -
03 Un commento dove dovrebbe esserci un nome di proprietà
JSON non ha commenti. Una riga // o un blocco /* */ dentro un oggetto produce esattamente questo messaggio, perché il parser si aspettava una chiave tra virgolette e ha trovato una barra.
Lo stesso errore in altri runtime
Il problema di fondo è identico; cambia solo la formulazione. Se un collega segnala uno di questi messaggi, sta guardando esattamente la stessa cosa che vedi tu.
| 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) |
Domande frequenti
- Perché il messaggio è diverso per gli array?
- Perché il parser si trova in uno stato diverso. Dentro un oggetto aspetta una chiave tra virgolette, e lo dice. Dentro un array aspetta un valore e trova la parentesi di chiusura, il che dà Unexpected token ']', "[1,2,]" is not valid JSON. Stesso errore, due messaggi completamente diversi.
- Python dava un errore diverso per questo. È cambiato?
- Sì. Python 3.13 ha aggiunto messaggi dedicati: «Illegal trailing comma before end of object» e l’equivalente per gli array. Su 3.12 e precedenti lo stesso input dà «Expecting property name enclosed in double quotes». Qualsiasi guida che non distingua per versione è sbagliata per metà dei suoi lettori.
- Il mio file di configurazione ha bisogno di commenti e virgole finali. Che opzioni ho?
- Usa JSONC, quello che VS Code impiega per le proprie impostazioni e che ammette commenti e virgole finali, oppure JSON5, che ammette parecchio di più. Entrambi richiedono un parser che li supporti. Il nostro strumento di riparazione riconverte l’uno e l’altro in JSON stretto.
Risolvilo adesso
Incolla il payload nello strumento qui sopra, oppure vai direttamente a quello creato per questo compito.
Rimuovila automaticamente