Incolla semplicemente la tua definizione di schema JSON prevista a sinistra e il JSON effettivo della risposta API a destra. Lo strumento confronta automaticamente entrambe le strutture, validando con precisione tipi di dati, campi obbligatori, pattern regex e altro. Questo è un passaggio essenziale per i test di contratto API e garantire la coerenza delle strutture dati frontend-backend.
Lo strumento segue completamente lo standard JSON Schema Draft-07. Supporta verifica di base dei tipi (type), campi obbligatori (required), definizioni di proprietà (properties), corrispondenza di pattern regex (pattern), validazione del formato (format), valori enum (enum) e una potente validazione di logica di combinazione (allOf, anyOf, oneOf, not).
Quando i dati JSON non corrispondono allo schema, lo strumento genera un rapporto di errori estremamente dettagliato. Indica con precisione il percorso JSON non valido, il tipo di errore specifico (come incompatibilità di tipo o campo obbligatorio mancante) e la regola di schema corrispondente — migliorando notevolmente l'efficienza del debug per lo sviluppo backend e la pulizia dei dati.
Prima della pulizia dei dati ETL o dell'ingestione dei dati, puoi utilizzare questo strumento per verificare se i dati sono conformi alle specifiche di schema predefinite. Questo intercetta efficacemente dati sporchi e anomalie, garantendo la qualità dei dati che entrano nei database o nei sistemi downstream — un passaggio cruciale per costruire pipeline dati robuste.
No. Tutta l'elaborazione del Validatore di Schema JSON avviene completamente nel tuo browser localmente. Che si tratti di strutture di dati API aziendali principali o dati di business personali, nulla viene mai caricato su alcun server, garantendo protezione della privacy di livello enterprise per i tuoi dati.
La tabella seguente elenca le parole chiave di validazione più utilizzate nella specifica JSON Schema, organizzate per categoria per una consultazione rapida.
| Parola Chiave | Descrizione |
|---|---|
| Tipi Base | |
type | Specifica il tipo di dati: string, number, integer, boolean, array, object, null. Supporta un tipo singolo o un array di tipi. |
| Validazione degli Oggetti | |
properties | Definisce sub-schemi per le proprietà dell'oggetto. |
required | Array di stringhe che specifica quali proprietà sono obbligatorie. |
additionalProperties | Controlla se sono consentite proprietà extra non definite in properties; può essere false o uno schema. |
propertyNames | Schema che i nomi delle proprietà devono soddisfare (comunemente usa regex pattern). |
minProperties | Numero minimo di proprietà che un oggetto deve contenere. |
maxProperties | Numero massimo di proprietà che un oggetto può contenere. |
| Enum e Costanti | |
enum | Array di valori consentiti; i dati devono essere esattamente un valore dell'array. |
const | Valore costante; i dati devono essere strettamente uguali a questo valore. |
| Vincoli Numerici | |
minimum | Valore numerico minimo (inclusivo). |
maximum | Valore numerico massimo (inclusivo). |
exclusiveMinimum | Il valore deve essere strettamente maggiore di (esclusivo). |
exclusiveMaximum | Il valore deve essere strettamente minore di (esclusivo). |
multipleOf | Il valore deve essere un multiplo del numero specificato. |
| Vincoli sulle Stringhe | |
minLength | Lunghezza minima della stringa. |
maxLength | Lunghezza massima della stringa. |
pattern | Espressione regolare; la stringa deve corrispondere a questo pattern. |
format | Validazione del formato semantico: email, uri, date-time, uuid, ipv4, ipv6, hostname, ecc. |
| Vincoli sugli Array | |
items | Schema per gli elementi dell'array (un singolo schema si applica a tutti gli elementi). |
minItems | Numero minimo di elementi nell'array. |
maxItems | Numero massimo di elementi nell'array. |
uniqueItems | Se gli elementi dell'array devono essere unici. |
contains | Almeno un elemento dell'array deve corrispondere a questo schema. |
| Logica Combinatoria | |
allOf | I dati devono corrispondere a tutti i sub-schemi (AND logico). |
anyOf | I dati devono corrispondere ad almeno un sub-schema (OR logico). |
oneOf | I dati devono corrispondere a esattamente un sub-schema (XOR). |
not | I dati NON devono corrispondere a questo schema (NOT logico). |
| Validazione Condizionale | |
if | Schema condizionale; se i dati corrispondono a if, devono soddisfare then; altrimenti devono soddisfare else. |
then | Schema da soddisfare quando la condizione if è vera. |
else | Schema da soddisfare quando la condizione if non è vera. |
| Riferimenti e Riuso | |
$ref | Riferisce ad altre definizioni di schema; supporta riferimenti locali (#/$defs/xxx) e riferimenti remoti. |
$defs | Definisce sub-schemi riutilizzabili (Draft 2019-09+; le versioni precedenti usano definitions). |
definitions | Parola chiave per sub-schemi riutilizzabili nel Draft 4-7. |
| Metadati | |
title | Titolo dello schema (annotazione, non validato). |
description | Descrizione dello schema (annotazione, non validato). |
default | Valore predefinito (annotazione, non validato). |
examples | Array di valori di esempio (annotazione, non validato). |
$schema | Specifica la versione della specifica JSON Schema in uso. |
| Dipendenze | |
dependentRequired | Dipendenza di proprietà: quando una proprietà esiste, altre proprietà devono esistere anch'esse (Draft 2019-09+). |
dependencies | Parola chiave di dipendenza nel Draft 4-7 che copre sia dipendenze di proprietà che di schemi. |
JSON Schema si è evoluto attraverso molteplici versioni Draft. Draft 7 è attualmente la versione più utilizzata; Draft 2020-12 è l'ultima versione stabile.
| Funzionalità | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| validazione dei tipi | ✓ | ✓ | ✓ | ✓ | ✓ |
| campi obbligatori | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | booleano | numero | numero | numero | numero |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| regex pattern | ✓ | ✓ | ✓ | ✓ | ✓ |
| validazione dei formati | ✓ | ✓ | ✓ | solo annotazione per impostazione predefinita | solo annotazione per impostazione predefinita |
| array items | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| riferimenti $ref | ✓ | ✓ | ✓ | ✓ | ✓ |
| riuso $defs | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| tuple prefixItems | forma array | forma array | forma array | forma array | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |