Validator di JSON Schema
Incolla uno schema e un documento, scegli la bozza e il validatore controlla il documento contro ogni parola chiave utilizzata dal tuo schema, type, required, enum, oneOf, $ref, if/then/else, format personalizzato, segnalando ogni violazione con un puntatore in stile JSONPath alla posizione esatta dell’errore.
Come validare contro uno schema
-
1
Incolla lo schema
Bozza JSON Schema 04, 07 o 2020-12. La parola chiave `$schema` (se presente) seleziona automaticamente la bozza.
-
2
Incolla il documento
Il JSON che desideri validare. Deve essere un JSON valido prima, gli errori di sintassi vengono mostrati prima della valutazione dello schema.
-
3
Valida
Ogni violazione viene segnalata con un puntatore JSON (`/user/email`) e la parola chiave che ha fallito (`format`, `required`, ecc.).
-
4
Correggi e ri-valida
Modifica uno dei due lati e lo stato si aggiorna in tempo reale.
Parole chiave supportate
Core: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Composizione: allOf, anyOf, oneOf, not.
Applicatori: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Condizionali: if, then, else, dependentSchemas.
Riferimenti: $ref, $defs, $id, $anchor.
Formati (con validazione quando abilitata): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Uscita degli errori
FAIL /user/email format "not-an-email" non è un "email" valido
FAIL /user/age minimum -3 è inferiore al minimo 0
FAIL /orders/0/total type "42" non è di tipo "number"
FAIL / required proprietà richiesta "shippingAddress" mancante
Ogni errore include il percorso e la parola chiave che ha fallito, rendendo veloce la localizzazione nel tuo editor.
Differenze tra le bozze che colpiscono
| Parola chiave | Bozza 04 | Bozza 07 | Bozza 2020-12 |
|---|---|---|---|
id vs $id |
id |
$id |
$id |
exclusiveMaximum come bool |
Sì | Numero | Numero |
Sintassi dell’array items |
items |
items |
prefixItems |
$ref consente fratelli |
No | No | Sì |
Imposta la bozza corretta; validare uno schema di bozza-04 come 2020-12 interpreterà male id e alcune altre sottigliezze.
Flussi di lavoro tipici
- Test di contratto API: prima di un deploy, esegui lo schema OpenAPI generato/aggiornato contro risposte campione reali.
- Rafforzamento della configurazione: valida ogni configurazione YAML/JSON in CI contro uno schema prima di unire.
- Ingestione dei dati: rifiuta i payload che non corrispondono alla forma attesa in anticipo, con un chiaro messaggio di errore.
Errori comuni
- Dimenticare l’applicazione di
format. Per impostazione predefinita, la maggior parte dei validatori tratta i formati sconosciuti come solo annotazioni. Abilita la validazione di formato rigorosa per rifiutare effettivamente email e date errate. - Uso eccessivo di
oneOf. Se due rami dioneOfsi sovrappongono, il documento fallirà (deve corrispondere esattamente a uno). UsaanyOfo schemi discriminatori. - Schemi rigidi con
additionalProperties: false. Aggiungere un nuovo campo opzionale diventa una modifica di rottura. Omettilo a meno che tu non voglia davvero un oggetto chiuso.
Domande frequenti
Sì. Le bozze 2020-12, 07 e 04 sono tutte supportate. Il validatore legge la parola chiave $schema dal tuo documento per scegliere quella giusta, o torna al selettore nell’interfaccia.
I formati standard (email, date-time, uuid, ipv4, ecc.) vengono convalidati quando il formato rigoroso è abilitato. I formati personalizzati dichiarati nel tuo schema sono trattati come annotazioni a meno che tu non fornisca un regex con pattern.
I riferimenti interni (#/$defs/foo) vengono risolti automaticamente. I riferimenti HTTP esterni non vengono recuperati per impostazione predefinita, per motivi di sicurezza. Includi prima i tuoi riferimenti esterni, oppure usa uno strumento dedicato che supporta la risoluzione remota di $ref.
Sì. Sia lo schema che il documento rimangono locali. Il contenuto incollato non viene mai caricato, sicuro per contratti API interni e dati sensibili.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Promemoria Markdown
Riferimento pratico Markdown con anteprime reali ed esempi pronti da copiare per titoli, elenchi, tabelle, codice, link, immagini e sintassi GFM.
Formatter HTML
Formatta HTML localmente nel browser con rientri di due o quattro spazi. L’HTML non viene caricato né validato.
Strumento disponibile in altre lingue
- Penentu Struktur JSON [ID]
- Trình xác thực JSON Schema [VI]
- Validador de JSON Schema [ES]
- Validateur de schéma JSON [FR]
- JSON 스키마 검증기 [KO]
- JSON Schema-validator [NL]
- JSON Schema-validator [SV]
- JSONスキーマバリデーター [JA]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- أداة التحقق من مخطط JSON [AR]
- JSON-Schema-Validator [DE]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [PT]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]
- JSON Schema Validator [EN]