← { } JSON
🛡 Dev Tools

Schema Validator

Valida JSON contro JSON Schema (Draft 7 / 2020-12), YAML e OpenAPI 3.x in tempo reale. Errori spiegati chiaramente con suggerimenti di fix integrati.

📐 Schema
👤 User 🛍 Product ⚡ API Response 📋 OpenAPI
📄 Dati da validare
✓ Valido ✗ Non valido ⚠ Parziale
🛡

Inserisci schema e dati, poi clicca Valida o usa Ctrl+Enter

Come validare uno schema JSON online

Incolla il tuo JSON Schema nel pannello sinistro e i dati JSON da validare nel pannello destro. Il tool evidenzia in tempo reale gli errori di validazione con il percorso esatto del campo non valido (es. $.user.age: deve essere number, trovato string). Supporta JSON Schema Draft 7 e 2020-12, le due versioni più diffuse. La validazione avviene nel browser con la libreria Ajv — nessun dato lascia il tuo dispositivo.

JSON Schema Draft 7 vs 2020-12

Draft 7 è il più compatibile: supportato nativamente da quasi tutti gli strumenti, ORM, e framework di validazione. Usa definitions per tipi riutilizzabili. Draft 2020-12 (l'ultimo standard) introduce: $dynamicRef/$dynamicAnchor per riferimenti ricorsivi complessi, prefixItems per array tipizzati con elementi in posizioni fisse, unevaluatedProperties per schema compositi, e usa $defs al posto di definitions. Per nuovi progetti usa 2020-12; per compatibilità massima usa Draft 7.

Errori di validazione più comuni

I problemi più frequenti: type mismatch — un campo atteso come number riceve una stringa (tipico con dati da form HTML dove tutto è stringa); required mancante — campo obbligatorio assente nel payload; additionalProperties — il payload ha campi extra non previsti dallo schema; enum non rispettato — il valore non è tra quelli consentiti; format non valido — email o date-time con formato sbagliato. Il validator mostra il percorso JSON di ogni errore per facilitare il debug.

Casi d'uso reali

Il validator è usato per: contract testing — verificare che la risposta di un'API esterna rispetti il contratto atteso prima di usarla nel codice; CI/CD — validare file di configurazione (Kubernetes manifests, package.json, configurazioni CI) in pipeline automatizzate; documentazione API — testare esempi di request/response durante la scrittura della documentazione OpenAPI; migrazione dati — verificare che i dati trasformati rispettino il nuovo schema prima dell'import.

JSON Schema vs OpenAPI vs Zod vs Joi

JSON Schema è lo standard indipendente dal linguaggio — funziona ovunque. OpenAPI usa JSON Schema come base ma aggiunge metadati specifici per API REST (operazioni, parametri, autenticazione). Zod è TypeScript-first: definisci lo schema in codice TS e ottieni type inference automatica — ideale per applicazioni TypeScript. Joi è la scelta storica nell'ecosistema Node.js, con API fluente. Usa JSON Schema quando hai bisogno di interoperabilità tra linguaggi o sistemi; usa Zod/Joi per validazione server-side in Node.js con TypeScript.

FAQ

Posso validare risposte API OpenAPI?

Sì. Nella modalità OpenAPI puoi incollare uno schema OpenAPI 3.x (la sezione sotto components/schemas) e validare un payload JSON contro di esso. Per validare l'intero documento OpenAPI (non i dati) usa strumenti come Spectral o la validator ufficiale di Swagger.

Come creare uno schema riutilizzabile con $ref?

Usa $defs (Draft 2020-12) o definitions (Draft 7) per tipi condivisi e referenziali con $ref: "#/$defs/NomeSchema". Esempio: definisci una volta il tipo Address nei $defs e riusalo in shippingAddress e billingAddress con $ref.

I dati vengono inviati a server?

No. La validazione avviene interamente nel browser con Ajv. Puoi incollare dati riservati, payload con PII, o schemi con strutture proprietarie senza rischi.

Supporta YAML Schema?

Il tool accetta JSON Schema in formato JSON. YAML è supportato come formato dei dati da validare. Per usare uno schema scritto in YAML, convertilo prima in JSON con il tool YAML Formatter di questo sito.

Errori di validazione più comuni

I problemi più frequenti: type mismatch — un campo atteso come number riceve una stringa (tipico con dati da form HTML dove tutto è stringa); required field missing — un campo obbligatorio è assente o è null; additionalProperties — lo schema non permette campi extra ma il dato li contiene; pattern mismatch — una stringa non rispetta la regex definita (es. formato email o UUID); enum violation — il valore non è tra quelli dichiarati nell'array enum.

Casi d'uso reali

Il validator è usato per: verificare che la risposta di un'API esterna rispetti il contratto atteso prima di usarla; validare config file JSON prima del deploy; testare payload di webhook; documentare e validare i body di request/response durante lo sviluppo API; fare QA su export da CMS o database. Lo schema diventa documentazione eseguibile del contratto dati.

JSON Schema vs OpenAPI vs Zod vs Joi

JSON Schema è lo standard indipendente dal linguaggio — funziona ovunque. OpenAPI usa JSON Schema come base ma aggiunge estensioni per API REST (operazioni, path, security). Zod (TypeScript) e Joi (JavaScript) sono librerie runtime con API fluente — più ergonomiche nel codice ma non interoperabili con altri linguaggi. Per API pubbliche e documentazione usa JSON Schema/OpenAPI; per validazione interna TypeScript, Zod è oggi lo standard de facto.

Come strutturare uno schema riutilizzabile

Usa $defs (Draft 2020-12) o definitions (Draft 7) per definire tipi condivisi e referenziali con $ref: "#/$defs/NomeSchema". Esempio: definisci Address una volta e riutilizzalo in Customer.shippingAddress e Customer.billingAddress senza duplicare. Questo mantiene lo schema DRY e facilita la manutenzione quando un tipo cambia.