In breve: JSON ha una grammatica piccola e rigida — gli errori che rompono un parser (virgole finali, chiavi non tra virgolette, apici singoli) sono invisibili nei dati minificati ma ovvi una volta formattati. Conoscere le regole sintattiche vere trasforma "l'API ha restituito un errore" in una correzione di due secondi. Abbina questa guida a Encoding Converter, Character Counter, Text Difference e AI Hidden Characters.

Formattare JSON significa aggiungere spazi bianchi e indentazione per rendere leggibile la sua struttura; validarlo significa verificare che quella struttura segua davvero la grammatica definita in RFC 8259. Il JSON minificato — la forma compatta senza spazi che le API trasmettono davvero — è corretto ma illeggibile; un formattatore inverte questo senza cambiare i dati.

Le regole di sintassi che contano davvero

Le chiavi JSON devono essere stringhe tra virgolette doppie — {name: "valore"} non è valido, solo {"name": "valore"} viene interpretato correttamente. Le virgolette singole non sono mai valide per stringhe o chiavi, a differenza dei letterali oggetto di JavaScript, che la sintassi di JSON limita deliberatamente. Una virgola finale dopo l'ultimo elemento in un array o oggetto — ["a", "b",] — è JSON non valido, anche se innocua (o addirittura richiesta per convenzione) in alcuni altri linguaggi, ed è una delle ragioni più comuni per cui JSON modificato a mano non viene interpretato.

Perché "sembra corretto" non equivale a valido

Un documento JSON può essere visivamente indistinguibile da uno valido e comunque non essere interpretato — una parentesi graffa di chiusura mancante alla fine di una struttura annidata grande, una virgoletta intelligente () incollata da un elaboratore di testi invece di una dritta ", o un commento vagante (JSON non ha alcuna sintassi per i commenti, a differenza di JSON5 o JSONC) romperanno tutti un parser rigoroso pur sembrando a posto a colpo d'occhio. Ecco perché formattare prima di guardare aiuta: un'indentazione corretta rende visivamente ovvia una parentesi non chiusa, rompendo il pattern di annidamento previsto.

Formattazione vs validazione dello schema

Un formattatore verifica che il JSON sia sintatticamente valido — parentesi bilanciate, stringhe tra virgolette corrette, nessuna virgola finale. Non verifica se i dati abbiano senso: se un campo che dovrebbe essere un numero sia in realtà una stringa, o se manchi un campo obbligatorio. Quella è una questione separata, gestita dalla validazione con JSON Schema, che verifica struttura e tipi rispetto a una definizione di schema invece di limitarsi a controllare che il JSON stesso sia ben formato.

Un flusso di lavoro per JSON disordinato o rotto

  1. Incolla il JSON grezzo — minificato, rotto o altro — in un formattatore per primo.
  2. Se viene interpretato, rivedi la struttura indentata per il campo o valore che stai cercando davvero.
  3. Se non viene interpretato, controlla prima la posizione dell'errore: la maggior parte dei parser riporta una riga/colonna, che di solito punta direttamente a una virgola, parentesi o virgoletta mancante.
  4. Fai particolare attenzione a virgole finali e virgolette intelligenti quando la sorgente è stata digitata a mano o incollata da un editor non-codice.

Errori comuni da evitare

  • Presumere che un'indentazione dall'aspetto valido significhi JSON valido — formattazione e parsing sono passaggi separati.
  • Aggiungere una virgola finale per abitudine da JavaScript o Python, dove spesso è tollerata.
  • Incollare JSON da un elaboratore di testi e ottenere virgolette intelligenti curve invece di quelle dritte.
  • Confondere "si formatta senza errori" con "corrisponde allo schema atteso dall'API" — sono controlli diversi.

La maggior parte degli errori JSON è un singolo carattere specifico in un punto specifico — il vero valore di un formattatore è rendere visibile quel punto invece di lasciarti a scandagliare una singola riga ininterrotta per trovarlo.