>_toolkitbox

~/tools / JSON Schema Validator

JSON Schema Validator — Verifica un JSON rispetto a uno JSON Schema

Verifica dei dati JSON rispetto a uno JSON Schema, con ogni problema mostrato insieme al suo percorso e alla regola non rispettata. Copre le parole chiave principali della Draft 2020-12. Utile per controllare l'output strutturato di un modello di IA. Nulla lascia il tuo browser.

Segue JSON Schema Draft 2020-12 per le parole chiave che supporta. Legge $ref solo all'interno dello stesso schema.

Tutto viene eseguito nel tuo browser. Lo schema e i dati non vengono caricati.

Uno JSON Schema descrive come deve essere un JSON valido: i tipi, le proprietà obbligatorie, i valori e gli intervalli ammessi. Questo strumento confronta un JSON con uno schema ed elenca ogni problema, indicando dove si trova nei dati e quale parola chiave dello schema non è stata rispettata. Le API di IA possono vincolare la risposta di un modello a uno schema, ma la risposta può comunque avere valori sbagliati, essere un rifiuto o risultare interrotta, quindi conviene controllarla da soli. Le parole chiave che lo strumento non verifica, come format, vengono elencate quando il tuo schema le usa, così un esito positivo non è mai più debole di quanto sembri.

Casi d'uso

  • Verificare che l'output strutturato di un modello di IA corrisponda allo schema che gli hai fornito
  • Provare uno schema con alcuni esempi validi e non validi prima di usarlo in un'API
  • Trovare quale proprietà di un documento JSON di grandi dimensioni viola le regole

Utilizzo

  1. Incolla lo schema a sinistra e i dati JSON a destra, oppure carica l'esempio.
  2. Leggi il risultato: un esito positivo, oppure un elenco di problemi con il percorso nei dati e la regola non rispettata.
  3. Se compare, leggi l'avviso sulle parole chiave che non sono state verificate.

Cosa verifica uno schema e cosa no

  • properties controlla solo le proprietà presenti. Una proprietà è obbligatoria solo se il suo nome è elencato in required, quindi una proprietà non elencata può mancare.
  • additionalProperties si applica ai nomi che non corrispondono né a properties né a patternProperties. Se è omessa, le proprietà aggiuntive sono consentite.
  • integer corrisponde a qualsiasi numero con parte frazionaria pari a zero.
  • pattern è un'espressione regolare ECMA-262 e non è ancorata: il pattern b corrisponde alla stringa abc. Aggiungi ^ e $ quando deve corrispondere l'intera stringa.
  • minLength e maxLength contano i caratteri come li definisce la RFC 8259, quindi una emoji vale uno.
  • format è un'annotazione per impostazione predefinita, e la sua verifica è facoltativa. Questo strumento non la verifica e lo dice quando uno schema la usa.
  • Le parole chiave sconosciute sono trattate come annotazioni, quindi una parola chiave scritta male come requierd viene ignorata e non fa fallire lo schema.

Array: 2020-12 e le draft precedenti

DraftSchemi per i primi elementiSchema per il resto
2020-12prefixItemsitems
draft-07 e precedentiitems come arrayadditionalItems

Questo strumento legge entrambe le forme. Nella 2020-12, items: false prende il posto di additionalItems: false.

Cosa accettano le funzioni di output strutturato delle IA

Ogni fornitore accetta solo un sottoinsieme di JSON Schema, e i tre lo documentano in modo diverso.

FornitoreCosa dice la documentazione
OpenAILa radice deve essere un oggetto. Ogni proprietà deve essere elencata in required (un valore facoltativo si scrive come un tipo che ammette anche null), e ogni oggetto richiede additionalProperties: false. allOf, not, dependentRequired, dependentSchemas e if/then/else non sono supportati.
AnthropicadditionalProperties deve essere false. Non sono supportati gli schemi ricorsivi, minimum, maximum e multipleOf, minLength e maxLength, né un minItems di un array diverso da 0 o 1. Una funzionalità non supportata restituisce un errore 400.
Google GeminiÈ supportato solo un sottoinsieme di JSON Schema. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains e maxContains vengono rimossi e ignorati invece di generare un errore.

Uno schema che supera questo validatore può comunque essere rifiutato, o applicato solo in parte, dalla funzionalità di un fornitore. Consulta la documentazione del fornitore e convalida tu stesso la risposta.

Convalida tu stesso la risposta

  • Google dice che l'output può corrispondere allo schema ed essere comunque sbagliato nel significato, e invita a convalidare i valori nella tua applicazione.
  • Anthropic osserva che un valore enum o const può tornare diverso solo per le maiuscole, senza errore.
  • OpenAI dice che un rifiuto non segue necessariamente lo schema, e che una risposta interrotta dal limite massimo di token è incompleta.
  • Anthropic dice che una risposta interrotta da max_tokens può non corrispondere allo schema. Controlla perché il modello si è fermato prima di fare il parsing.

Fonti (verificate il 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output

FAQ

Quale versione di JSON Schema segue?

La Draft 2020-12. Legge anche le vecchie forme per gli array della draft-07, in cui items può essere un array e additionalItems copre gli elementi restanti. Accetta $ref verso definizioni all'interno dello stesso schema ($defs o definitions) e non scarica schemi esterni.

Quali parole chiave verifica?

type, enum, const, i limiti di numeri e stringhe, pattern, le parole chiave per gli array (items, prefixItems, minItems, maxItems, uniqueItems, contains), quelle per gli oggetti (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired e altre), allOf, anyOf, oneOf, not e if/then/else.

Cosa non verifica?

format, unevaluatedProperties, unevaluatedItems, $dynamicRef e contentMediaType non vengono verificati. JSON Schema tratta format come annotazione per impostazione predefinita, e la sua verifica è facoltativa. Quando il tuo schema usa una di queste parole chiave, lo strumento lo segnala.

Perché una parola chiave scritta male non causa un errore?

JSON Schema tratta le parole chiave sconosciute come annotazioni, quindi un errore di battitura come requierd viene ignorato e lo schema risulta comunque valido. Lo strumento segnala un valore sbagliato per una parola chiave che conosce, come un type che non esiste, ma non può sapere che intendevi un'altra parola.

Uno schema che passa qui funziona con gli output strutturati di un fornitore di IA?

Non necessariamente. Ogni fornitore supporta solo un sottoinsieme di JSON Schema. OpenAI richiede che ogni proprietà sia required e che additionalProperties sia false, Anthropic non supporta i limiti di lunghezza di numeri o stringhe e Gemini ignora diverse parole chiave. Vedi le note sui fornitori sotto lo strumento.

I miei dati vengono inviati a un server?

No. Sia lo schema sia i dati vengono controllati nel tuo browser.

Correlati