Informazioni sullo strumento
Un errore di sintassi in un file di fixture o nel body di una richiesta è una delle cause più comuni di fallimenti di test poco chiari. Questo validatore controlla il JSON secondo lo standard rigoroso e segnala il primo errore con riga e colonna; quando il documento è valido mostra un riepilogo della struttura (oggetti, array, chiavi e profondità). Per validare la forma dei dati anziché la sintassi, usa il validatore JSON Schema.
Come si usa
- Incolla il JSON da verificare.
- Leggi il banner del risultato: verde significa valido, rosso mostra il messaggio di errore e la posizione.
- Correggi il punto segnalato: il risultato si aggiorna mentre scrivi.
Che cosa è JSON valido
Il validatore applica la grammatica rigorosa della RFC 8259, le stesse regole di JSON.parse. Un documento è un singolo valore: un oggetto, un array, una stringa, un numero, true, false o null. Un semplice "hello" o 42 è quindi JSON valido, anche se la maggior parte delle API restituisce un oggetto.
Le chiavi duplicate sono una trappola frequente. Lo standard dice che i nomi DOVREBBERO essere univoci ma non vieta le ripetizioni, e JSON.parse mantiene silenziosamente l’ultimo valore. Un controllo di sintassi non segnala {"id": 1, "id": 2}, quindi cerca i duplicati in code review o con un linter.
Come leggere il messaggio di errore
Ogni browser formula gli errori di parsing in modo diverso. Chrome mostra messaggi come “Unexpected token” o “Expected property name” con una posizione, Firefox indica riga e colonna. In ogni caso la posizione è il punto in cui il parser si è arreso, di solito subito dopo l’errore vero: una virgola mancante, un apice non chiuso o una parentesi di troppo nella riga precedente.
Validare il JSON nei test automatici
- Playwright:
await response.json()lancia un’eccezione quando il body non è JSON valido, quindi il test fallisce su quella riga. Controlla ancheresponse.headers()['content-type'], perché un server può inviare testo JSON etichettato come HTML. - REST Assured: verifica
.contentType(ContentType.JSON), poi controlla la struttura conmatchesJsonSchemaInClasspath("order-schema.json")del modulo json-schema-validator. - Postman:
pm.response.json()lancia un’eccezione con JSON non valido epm.response.to.be.jsonverifica il content type. - Per forma e tipi (campi obbligatori, formati, enum) passa al validatore JSON Schema. La validazione sintattica dimostra solo che il testo è analizzabile.
Validatore JSON: domande frequenti
Che differenza c’è tra validazione JSON e validazione con schema?
La validazione sintattica verifica che il testo sia JSON ben formato. La validazione con schema verifica che il JSON ben formato abbia i campi, i tipi e i vincoli attesi, ad esempio “id è un intero obbligatorio”.
Perché l’errore indica una posizione successiva all’errore reale?
I parser segnalano il punto in cui non sono più riusciti a proseguire. Una virgola o un apice mancante si trovano di solito subito prima della posizione indicata.