Correggere chiavi senza virgolette nel JSON
Chiavi come name, active e profile devono essere tra virgolette in JSON valido, anche quando sembrano identificatori normali.
Perché le chiavi senza virgolette falliscono
JavaScript ammette nomi di proprietà nudi nei letterali di oggetto. JSON no; ogni chiave di oggetto deve essere una stringa tra virgolette doppie.
Esempio errato
{ name: "Ada", active: true }
JSON corretto
{ "name": "Ada", "active": true }
Perché gli identificatori JavaScript somigliano alle chiavi JSON
In un letterale di oggetto JavaScript, { name: "Ada" } è legale perché name è un identificatore valido. JSON ha tolto quella scorciatoia in modo che il parser debba riconoscere una sola forma — una stringa tra virgolette — per ogni chiave, mantenendo la grammatica abbastanza piccola da essere implementabile in qualunque linguaggio.
Chiavi che richiedono sempre le virgolette
Anche se un parser accettasse identificatori nudi, diverse forme di chiave avrebbero comunque bisogno di virgolette: parole riservate come return o class, nomi con trattini o punti, nomi che iniziano con una cifra e nomi Unicode con caratteri combinanti o emoji. Mettere le virgolette a tutte le chiavi elimina tutti questi casi limite.
Quando l’auto-repair può aggiungere virgolette in sicurezza
Lo strumento di repair aggiunge le virgolette agli identificatori nudi in posizione di chiave — cioè subito dopo { o , e seguiti da :. Non tocca chiavi già tra virgolette, valori o testo dentro alle stringhe, quindi aggiungere virgolette è sicuro anche se il documento mescola chiavi valide e non valide.
JSON5 e JSONC
JSON5 e JSONC (il formato che VS Code usa per le impostazioni) ammettono entrambi chiavi senza virgolette e commenti. Vanno bene per configurazione editata a mano, ma non per interscambio — non esporre mai JSON5 da una API, i client standard lo rifiutano.
FAQ
D: Perché il mio JSON ha chiavi senza virgolette? R: Di solito perché è stato copiato da un letterale di oggetto JavaScript o generato da un motore di template che le ha dimenticate. D: Posso lasciare chiavi senza virgolette in package.json? R: No — package.json è JSON strict; solo tsconfig.json (JSONC) lo tollera.
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 le virgole finali nel JSON
- Correggere gli apici singoli 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