Come validare un JSON
- Incolla il JSON o apri un file. La validazione parte automaticamente mentre scrivi.
- Un messaggio verde “JSON valido” con le statistiche significa che il documento è corretto. Altrimenti leggi l'errore: indica la riga, la colonna e cosa era previsto in quel punto.
- Correggi la riga evidenziata o fai clic su Ripara, poi usa Formatta per rendere il risultato facile da leggere.
Errori JSON comuni e come correggerli
| Errore | Esempio | Correzione |
|---|---|---|
| Virgola finale | [1, 2, ] | Rimuovi la virgola prima di ] o } |
| Virgolette singole | {'name': 'Ada'} | Usa le virgolette doppie: {"name": "Ada"} |
| Chiave senza virgolette | {name: "Ada"} | Metti la chiave tra virgolette: {"name": "Ada"} |
| Virgola mancante | {"a": 1 "b": 2} | Aggiungi una virgola tra le proprietà |
| Commento | // settings | JSON non prevede commenti – rimuovili |
| A capo in una stringa | "line 1⏎line 2" | Scrivi \n invece di un vero a capo |
| Valore non valido | undefined, NaN, True | Usa null, un numero, true o false |
| Zero iniziale | {"zip": 01234} | Scrivi 1234 oppure mantienilo come testo: "01234" |
| Parentesi mancante | {"a": [1, 2} | Chiudi ogni [ con ] e ogni { con } |
Cosa rende valido un JSON
JSON è definito nella RFC 8259. Un documento valido segue poche regole rigorose:
- Contiene esattamente un valore di primo livello, di solito un oggetto
{}o un array[]. - I membri di un oggetto sono coppie
"key": valueseparate da virgole; le chiavi sono sempre stringhe tra virgolette doppie. - Le stringhe usano le virgolette doppie; al loro interno sono ammessi solo gli escape
\" \\ \/ \b \f \n \r \te\uXXXX. - I numeri sono decimali: niente zeri iniziali, niente segno
+, niente esadecimali, nienteNaNoInfinity. true,falseenullsi scrivono in minuscolo.- Tra i token sono ammessi spazi, tabulazioni e a capo, ma non i commenti.
Validare JSON da riga di comando
- Python:
python -m json.tool file.jsonstampa la riga e la colonna del primo errore. - jq:
jq empty file.jsontermina con un messaggio di errore se il file non è valido. - Node.js:
node -e "JSON.parse(require('fs').readFileSync('file.json', 'utf8'))"
Domande frequenti
Che differenza c'è tra un validatore JSON e un linter JSON?
Un validatore controlla se il testo rispetta la sintassi JSON. Un linter di solito impone anche uno stile coerente. Questo strumento valida rigorosamente secondo la RFC 8259 e, con Formatta, ti dà anche un'indentazione coerente.
Può validare rispetto a un JSON Schema?
Questa pagina controlla la sintassi. Per descrivere la struttura attesa dei tuoi dati, crea uno schema a partire da un documento di esempio con il nostro generatore di JSON Schema.
Perché il mio JSON è valido qui ma viene rifiutato da un altro programma?
Spesso i programmi si aspettano una struttura specifica (determinate chiavi o tipi), una codifica particolare come UTF-8 senza byte order mark oppure numeri entro un intervallo limitato. Un JSON sintatticamente valido può comunque violare queste regole applicative.
Un JSON con commenti (JSONC) è valido?
No. Il JSON standard non ammette commenti. Alcuni editor li accettano nei file di impostazioni (JSONC), ma le API e JSON.parse no. Ripara rimuove i commenti al posto tuo.