Correggere le virgole finali nel JSON
Una virgola finale dopo l’ultima proprietà di un oggetto o l’ultimo elemento di un array è valida in alcuni contesti JavaScript, ma non in JSON.
Perché capita l’errore
I letterali di oggetto JavaScript spesso ammettono una virgola finale, ma JSON richiede che l’ultimo elemento sia seguito direttamente dalla parentesi di chiusura.
Esempio errato
{ "name": "Ada", "active": true, }
JSON corretto
{ "name": "Ada", "active": true }
Da dove arrivano le virgole finali
Per lo più compaiono quando qualcuno edita a mano una configurazione, commenta l’ultimo elemento o incolla da codice JavaScript o TypeScript. Anche template engine e generatori di codice le producono se un ciclo aggiunge una virgola dopo ogni elemento senza tenere conto dell’ultimo indice.
Perché alcuni parser le accettano e JSON no
Letterali di oggetto JavaScript, JSON5, JSONC, YAML e gran parte delle sintassi di letterali in altri linguaggi accettano la virgola finale perché rende più puliti i diff. JSON nella RFC 8259 deliberatamente non lo fa — parser severi come JSON.parse, encoding/json di Go o il modulo json di Python la rifiutano.
Rilevare le virgole finali prima della produzione
In CI, fai il lint dei file di configurazione con un parser JSON severo (jq, python -m json.tool o node -e 'JSON.parse(...)'). Nei repository TypeScript imposta "trailingComma": "none" in Prettier per i .json, così il formatter non ne aggiunge.
Quando la virgola finale non è il vero bug
Se un payload arriva da una API o da una libreria che produce JSON e contiene una virgola finale, il problema è nella serializzazione a monte, non nel consumatore. Correggere la virgola localmente nasconde un bug del producer che ritornerà alla prossima chiamata — sistema il producer.
FAQ
D: JSON.parse accetterà mai le virgole finali? R: No — il modo strict è lo standard. D: JSON5 è un sostituto sicuro? R: Solo per configurazioni editate a mano; mai per protocolli di rete. D: Lo strumento di auto-repair può rimuovere solo le virgole finali? R: Sì, incolla il JSON e le toglie insieme ad altri errori di sintassi comuni.
Guide alla riparazione di JSON
Hub tematici
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
Guide specifiche
- Come decodificare stringhe Base64 (e payload JWT)
- Codifica URL: codifica in percentuale parametri di query e percorsi
- Convertire YAML in JSON (ed evitare errori di indentazione)
- Convertire JSON in CSV: appiattire un array di oggetti
- Convertire JSON in XML: radice, attributi e array
- Fare escape del JSON come letterale stringa (e decodificare JSON doppiamente codificato)
- Correggere gli apici singoli nel JSON
- Correggere chiavi senza virgolette nel JSON
- Riparare il JSON prodotto da un LLM
- Correggere l’errore di parse JSON: Expected Property Name
- JSON vs letterale di oggetto JavaScript
- Valida il JSON prima delle richieste API
- Formattatore JSON vs JSON Repair
- Correggere errori JSON Unexpected Token
- Convertitore JSON in oggetto JavaScript