Convertitore di schema da JSON a JSON — Numio
Deduce uno schema JSON (bozza-07) da un campione JSON. Per gli array di oggetti, tutti gli elementi vengono uniti: una chiave mancante o nulla in alcuni elementi viene lasciata fuori da obbligatorio.
Creazione di un primo schema di convalida per una risposta API o un payload webhook dagli esempi acquisiti.
Quando usarlo
- Creazione di un primo schema di convalida per una risposta API o un payload webhook dagli esempi acquisiti.
- Produzione di uno schema da inserire in Ajv, OpenAPI o uno schema da JSON al passo TypeScript/Zod.
Come si usa
- Incolla un campione JSON nell'editor di sinistra o utilizza il pulsante carica file per aprire un file UTF-8. Una serie di diversi record fornisce elenchi richiesti migliori.
- Leggi lo schema: ogni chiave in un singolo oggetto è obbligatoria e le chiavi assenti o nulle in alcuni elementi dell'array sono facoltative.
- Copia lo schema e aggiungi i vincoli che l'esempio non può mostrare, come formati, enumerazioni, numero intero e minimo.
Campione JSON
[
{ "id": 1, "name": "Ada", "email": null },
{ "id": 2, "name": "Lin", "email": "lin@example.com" }
]Schema JSON (bozza-07)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Generated schema for Root",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"id",
"name"
]
}
}Dettagli e limiti
I numeri hanno sempre "type": "number"; integer, formati (email, date-time), enum e pattern non vengono dedotti. Il titolo è sempre "Generated schema for Root".
Un campo nullo ovunque ottiene uno schema vuoto {}. Un valore null che si trova accanto ad altri valori viene considerato facoltativo e non di tipo null.
Gli array di tipo misto come [1, "x"] diventano una tupla (elenco di elementi con additionalItems: false); un array vuoto fornisce elementi: {}.
Generato nel tuo browser da json_typegen compilato in WebAssembly. JSON non valido (comprese le virgole finali) mostra l'errore di analisi JSON e un singolo valore come 42 viene rifiutato perché non ha struttura.
FAQ
Quale bozza di schema JSON restituisce?
Draft-07, dichiarato come "$schema": "http://json-schema.org/draft-07/schema#". Non è possibile scegliere 2019-09 o 2020-12.
Come vengono rilevati i campi facoltativi?
Solo tra elementi dello stesso array: una chiave mancante in alcuni oggetti, o nulla in alcuni, viene esclusa da obbligatorio. In un unico oggetto ogni chiave è necessaria.
Può convertire un array JSON alla radice?
Sì. La radice riceve "type": "array" e gli elementi vengono uniti in un solo schema items, come nell’esempio.