Correggere gli apici singoli nel JSON
Stringhe e chiavi di oggetto in JSON devono usare virgolette doppie. I valori tra apici singoli sono comuni in frammenti JavaScript, output in stile Python e risposte di LLM.
Perché gli apici singoli falliscono
JSON strict accetta solo stringhe con virgolette doppie. Un parser rifiuta {'name':'Ada'} anche se la forma può sembrare familiare a chi sviluppa in JavaScript.
Esempio errato
{ 'name': 'Ada', 'active': true }
JSON corretto
{ "name": "Ada", "active": true }
Da dove arriva il testo con apici singoli
repr() e la stampa dei dict in Python, letterali di oggetto JavaScript copiati dalla console, ispezione di hash in Ruby e molte risposte di LLM usano apici singoli. Nessuno di questi è JSON — sono letterali nativi del linguaggio che si limitano ad assomigliargli.
Perché un find-and-replace cieco è rischioso
Sostituire ' con " senza criterio rompe i valori che contengono apostrofi, come { 'note': 'it's fine' }. Dopo la sostituzione l’apostrofo interno collide con il nuovo delimitatore di stringa. Un convertitore sicuro deve tenere conto del contesto delle virgolette e cambiare solo i delimitatori, non i caratteri interni.
Strategia di conversione sicura
Tokenizza prima l’input: scorri il testo, identifica i confini delle stringhe dall’apice di apertura e ricostruisci ogni token con virgolette doppie — facendo l’escape delle virgolette doppie interne e togliendo l’escape ridondante agli apici singoli. Lo strumento di repair di questo sito fa tutto in una passata.
Errori di sintassi JSON correlati
Il JSON con apici singoli porta spesso con sé altri «peccati» in stile JavaScript: chiavi senza virgolette, virgole finali, commenti di riga o valori undefined. Dopo aver sistemato gli apici, valida il risultato per far emergere ciò che resta.
FAQ
D: Le stringhe tra apici singoli sono valide in JSON5? R: Sì, JSON5 le ammette. D: json.loads di Python accetta gli apici singoli? R: No — usa ast.literal_eval se la sorgente è davvero un letterale Python, altrimenti converti prima gli apici. D: Anche le chiavi JSON devono usare le virgolette doppie? R: Sì — le chiavi sono stringhe, stessa regola.
Per la spiegazione approfondita sul perché JSON richieda gli apici doppi — e su come si differenzi da un letterale oggetto JavaScript — vedi JSON vs oggetto JavaScript: perché gli apici singoli non sono ammessi.
Vedi anche
Questa guida è una tappa di un flusso di riparazione più ampio che copre virgole finali, chiavi senza virgolette, apici singoli e oggetti serializzati. Apri l'hub per la sequenza completa.
Guide alla riparazione di JSON
Hub tematici
- Errori di parsing JSON: leggi il messaggio, vai dritto alla soluzione
- Riparare JSON non valido: da «cosa non va» a un file pulito
- Formattatore, validatore, visualizzatore JSON: scegli lo strumento giusto
- Riparare l'output JSON di un LLM: gestire il quasi-JSON dell'IA
- Privacy: strumenti JSON che non lasciano il tuo browser
- Interoperabilità JSON: 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 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