Come si usa
- Incolla un esempio JSON, oppure fai clic su «Carica esempio».
- Imposta il titolo dello schema radice.
- Copia o scarica lo schema, poi aggiungi vincoli come formati, pattern e intervalli.
Opzioni spiegate
- Nome del tipo radice
- Viene usato come title dello schema.
Esempi
{"id": 1, "email": null} diventa uno schema con "id": {"type": "integer"}, "email": {"type": "null"} ed entrambe le chiavi in required.
Esempio
Due record utente, dove solo il primo ha un’email e manager è a volte null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
Con il nome del tipo radice impostato su User, lo schema generato è:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
email è escluso da required perché il secondo record non lo ha, e manager accetta null oppure un oggetto perché entrambi compaiono nell’esempio. Più i tuoi dati di esempio sono vari, più lo schema è accurato: incolla più record anziché uno solo.
Usi comuni
Validare l’input di un’API. Carica lo schema in un validatore come Ajv (JavaScript) o jsonschema (Python) e rifiuta le richieste che non corrispondono.
Documentare un’API. Incolla le proprietà in una sezione components.schemas di OpenAPI come punto di partenza.
Completamento automatico nell’editor. VS Code e gli IDE JetBrains possono usare uno JSON Schema per suggerire le chiavi e segnalare errori nei file di configurazione JSON.
Domande frequenti
Quali chiavi vengono indicate come obbligatorie?
Le chiavi presenti in ogni oggetto dell'esempio. Quando un array contiene oggetti con chiavi diverse, le chiavi mancanti in alcuni elementi restano fuori da required.
Posso usarlo con OpenAPI?
OpenAPI 3.1 usa JSON Schema 2020-12, quindi lo schema generato si inserisce sotto components/schemas. Per OpenAPI 3.0, sostituisci gli array di tipi come ["string", "null"] con nullable true.
Riconosce formati come email o date-time?
No. Deduce solo i tipi. Aggiungi a mano format, pattern, minimum e parole chiave simili dove serve.
Il mio JSON viene caricato online?
No. Lo schema viene generato nel tuo browser, quindi le risposte API con dati reali restano sul tuo dispositivo.
Privacy
Questo strumento funziona interamente nel tuo browser. File e testi vengono elaborati sul tuo dispositivo e non vengono mai caricati sui nostri server.