Generatore di JSON Schema
Incolla uno o più campioni JSON e il generatore inferisce un JSON Schema che puoi utilizzare per convalidare nuovi payload. Rileva i tipi, segna i campi come richiesti quando appaiono in ogni campione, inferisce gli enum quando i valori provengono da un piccolo insieme chiuso e produce un output conforme al JSON Schema draft 2020-12.
Come generare un JSON Schema
-
1
Incolla documenti campione
Uno o più payload reali, maggiore varietà, maggiore accuratezza dello schema inferito.
-
2
Scegli il draft
Draft 2020-12 (attuale), draft 07 (ampiamente supportato) o draft 04 (OpenAPI legacy).
-
3
Regola l'inferenza
Attiva l'inferenza degli enum, strategia dei campi richiesti (intersezione vs unione) e se contrassegnare tutti i campi come `richiesti` quando viene fornito solo un campione.
-
4
Genera
Lo schema viene emesso con `$schema`, `title`, `type`, `properties` e `$ref` annidati per oggetti secondari ripetuti.
Cosa fa bene l’inferenza
- Tipi: stringa, numero, intero, booleano, null, array, oggetto.
- Nullabilità: un campo che è
nullin un campione e una stringa in un altro diventa["string", "null"]. - Elementi dell’array: gli array omogenei producono uno schema
itemssingolo; gli array eterogenei produconoprefixItems. - Enumerazioni (enum): se tutti i valori osservati provengono da un piccolo insieme (configurabile, predefinito 10 valori distinti), emette un
enum. - Richiesti: con più campioni, l’intersezione delle chiavi diventa
richiesta; con un campione, tutte le chiavi sono richieste a meno che tu non decida di escluderle. - Formati: le stringhe che corrispondono a date ISO-8601, email o URI ottengono un
formatinferito.
Cosa l’inferenza non può sapere
- Intento vs esempio: un campione
age: 25inferiscetype: integer, ma non può sapere che accetti anchenull. Passa più campioni che coprano i casi limite. - Vincoli:
minLength,maximum,pattern, devi aggiungerli manualmente. L’inferenza non indovina i limiti dai campioni. - Logica aziendale: “esattamente uno di questi tre campi deve essere impostato” richiede
oneOf, non inferibile. - Riferimenti: il generatore emette uno schema piatto. Se desideri fattorizzare forme ripetute in
$defs, fallo dopo la generazione.
Esempio di output
Da un singolo campione:
{ "name": "Alice", "age": 30, "tags": ["admin", "user"] }
Lo schema inferito (draft 2020-12):
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["name", "age", "tags"]
}
Errori comuni
- Inferire da un campione. Lo schema si adatterà eccessivamente, ogni campo diventa richiesto, senza tolleranza per null. Fornisci sempre almeno 5-10 campioni variati.
- Usare
integerquando intendevinumber. Se un campione ha un decimale, il tipo inferito diventanumber; se tutti sono interi, diventainteger. Per i campi che potrebbero essere entrambi, includi un campione decimale. - Dimenticare i campi opzionali. Un campo presente in 4 campioni su 5 ma mancante in 1 diventa opzionale, intenzionale. Se tutti e 5 i campioni lo includono, lo schema lo contrassegnerà come richiesto anche se in realtà è opzionale nella tua API.
Domande frequenti
Più ce ne sono, meglio è, ma 5-10 campioni variati producono tipicamente uno schema ragionevole. Con un campione, ogni campo diventa richiesto e la nullabilità non può essere inferita, fornisci sempre più varianti se puoi.
Draft 2020-12 per impostazione predefinita. Draft 07 e 04 sono disponibili per la compatibilità con OpenAPI 3.0 (che utilizza un sottoinsieme del draft 05/07).
No. Inferire vincoli sensati dai campioni porterebbe a un adattamento eccessivo dello schema. Aggiungi minLength, maximum, pattern ecc. manualmente dopo la generazione in base alle tue regole aziendali.
Sì. Se incolli un array JSON, il generatore tratta ogni elemento come un campione separato e produce uno schema che descrive un elemento individuale, non l’array esterno. Attiva “tratta come contenitore array” se desideri la forma dell’array esterno.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Promemoria Markdown
Riferimento pratico Markdown con anteprime reali ed esempi pronti da copiare per titoli, elenchi, tabelle, codice, link, immagini e sintassi GFM.
Creatore di diagrammi di flusso
Crea nel browser diagrammi di flusso visivi con cinque tipi di nodo, connessioni dirette e download SVG o PNG.
Strumento disponibile in altre lingue
- مولّد مخطط JSON [AR]
- Générateur de schéma JSON [FR]
- JSON-schemagenerator [SV]
- Generator JSON Schema [ID]
- เครื่องมือสร้าง JSON Schema [TH]
- JSON-Schema-Generator [DE]
- JSONスキーマジェネレーター [JA]
- JSON 스키마 생성기 [KO]
- JSON-schemagenerator [NL]
- Generator schematów JSON [PL]
- Trình tạo JSON Schema [VI]
- Generador de Esquema JSON [ES]
- Gerador de Esquema JSON [PT]
- JSON Schema Generator [EN]
- Генератор JSON-схем [RU]
- JSON Şema Oluşturucu [TR]
- JSON 模式生成器 [ZH]