Cosa fa
JSON Schema è un vocabolario per descrivere la forma dei dati JSON: quali proprietà deve avere un oggetto, di che tipo è ogni valore, intervalli e pattern ammessi, lunghezza degli array e molto altro. Le API lo usano nelle specifiche OpenAPI, gli editor per l’autocompletamento dei file di configurazione e i back end per rifiutare richieste errate.
Questo validatore controlla un documento JSON rispetto a uno schema ed elenca ogni problema trovato. Ogni errore mostra dove si trova nei dati (un JSON Pointer come /tags/1), un messaggio leggibile e la parola chiave dello schema che non è stata soddisfatta, così puoi correggere rapidamente i dati o lo schema. Supporta draft 2020-12, 2019-09, draft-07 e draft-04, inclusi $ref, $defs, allOf/anyOf/oneOf, if/then/else, unevaluatedProperties e il controllo dei formati.
Come si usa
- Incolla i dati in Dati JSON e lo schema in JSON Schema, oppure carica un file per ciascun lato. Esempio carica un record utente con alcuni errori voluti.
- Il risultato si aggiorna mentre scrivi: un badge verde se i dati sono validi, altrimenti il numero di errori e il loro elenco.
- Lascia Versione su Automatica per seguire
$schema, oppure imponi una versione. Disattiva Mostra tutti gli errori per fermarti al primo. - Copia errori copia l’elenco come testo semplice, per una segnalazione di bug o una code review.
Se uno dei due lati non è JSON valido, il messaggio indica se il problema è nei dati o nello schema e riporta riga e colonna.
Esempio
Con questo schema:
{
"type": "object",
"required": ["id"],
"properties": {
"id": { "type": "integer" },
"age": { "type": "integer", "minimum": 0 }
}
}
il documento {"age": -1} produce due errori: alla (radice) manca la proprietà obbligatoria id; in /age il valore è inferiore al minimo di 0.
Suggerimenti
Aggiungi "additionalProperties": false per individuare nomi di proprietà scritti male, che altrimenti passano inosservati. Usa enum o const per i valori fissi e pattern per stringhe come i codici prodotto. Quando lo schema cresce, sposta le parti ripetute in $defs e richiamale con $ref.
Domande frequenti
› Quali versioni di JSON Schema sono supportate?
Draft 2020-12, 2019-09, draft-07 (che copre anche draft-06) e draft-04. Con Versione su Automatica, la versione viene letta dalla parola chiave $schema; gli schemi senza $schema sono trattati come 2020-12.
› Cosa indicano i percorsi degli errori?
Il primo percorso è un JSON Pointer al valore dei tuoi dati che non è valido, come /items/2/price; (radice) indica l’intero documento. La riga grigia mostra la parola chiave fallita e la sua posizione nello schema, come minimum · #/properties/age/minimum.
› Vengono controllati formati come email e date-time?
Sì. Sono validati i formati comuni: date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, regex, json-pointer e altri. I formati sconosciuti vengono ignorati, come consente la specifica.
› Lo schema può fare riferimento ad altri file?
I riferimenti interni allo stesso schema funzionano, per esempio un $ref a #/$defs/address. Gli URL esterni non vengono scaricati, perché nulla lascia il browser; incolla le definizioni referenziate in $defs.