Vai al contenuto
jsonbeautifiers
Italiano
V8 Verificato eseguendo il parser su Node v24.15.0, V8 13.6.233.17.

Expected property name or '}' in JSON at position N (line L column C)

Il parser ha aperto un oggetto e si aspettava o una chiave tra virgolette doppie o la graffa di chiusura. Ha ricevuto altro. Nei dati reali quell’altro è quasi sempre un apice singolo o un identificatore nudo, il che significa che il testo è il repr di un dict Python o un literal di oggetto JavaScript, non JSON.

Incolla il tuo JSON e vedi esattamente dove si rompe

Input

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.

  1. 01 Chiavi tra apici singoli, da un dict Python stampato con str()

    print(mio_dict) e str(mio_dict) producono sintassi Python, non JSON: apici singoli, e True, False e None invece di true, false e null. Usa json.dumps per produrre JSON.

    Si rompe

    {'name': 'Priya', 'active': True}

    Funziona

    {"name": "Priya", "active": true}
  2. 02 Chiavi senza virgolette, da un literal di oggetto JavaScript

    JavaScript ammette identificatori nudi come chiavi. JSON no, nemmeno quando la chiave sarebbe un identificatore perfettamente valido.

    Si rompe

    { name: "Priya", role: "admin" }

    Funziona

    { "name": "Priya", "role": "admin" }
  3. 03 Un commento dentro un file di configurazione

    JSON non ha una sintassi per i commenti. Un // o un /* dentro un oggetto finisce qui.

  4. 04 Virgolette tipografiche arrivate da un elaboratore di testi

    La correzione automatica di Word, Google Docs, Note e di vari client di chat trasforma le virgolette dritte in curve. Per un parser JSON le virgolette curve sono caratteri qualunque, non delimitatori di stringa. Il nostro validatore le nomina esplicitamente invece di segnalare un generico token inatteso.

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.

Python Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
Java (Jackson) Unexpected character ('s' (code 115)): was expecting double-quote to start field name

Domande frequenti

Come produco JSON da un dict Python nel modo giusto?
json.dumps(obj) restituisce una stringa JSON. str(obj) e print(obj) restituiscono sintassi Python che soltanto le somiglia. È una delle fonti più comuni di JSON non valido in circolazione.
Posso convertire il repr di un dict Python in JSON?
Sì. ast.literal_eval lo analizza in sicurezza in un oggetto Python, che poi puoi passare a json.dumps. Il nostro strumento di riparazione fa lo stesso lavoro nel browser, convertendo gli apici singoli e i literal True, False e None in una sola passata.

Risolvilo adesso

Incolla il payload nello strumento qui sopra, oppure vai direttamente a quello creato per questo compito.

Convertilo in JSON valido