JSON-schemagenerator
Plak een of meer JSON-voorbeelden en de generator leidt een JSON-schema af dat u kunt gebruiken om nieuwe payloads te valideren. Het detecteert typen, markeert velden als verplicht wanneer ze in elk voorbeeld voorkomen, leidt enums af wanneer waarden uit een kleine gesloten verzameling komen en produceert uitvoer die voldoet aan JSON-schema draft 2020-12.
Zo genereert u een JSON-schema
-
1
Plak voorbeelddocumenten
Een of meer echte payloads: hoe meer variatie, hoe nauwkeuriger het afgeleide schema.
-
2
Kies de draft
draft 2020-12 (huidig), draft 07 (breed ondersteund) of draft 04 (voor het verouderde OpenAPI).
-
3
Inferentie afstemmen
Enum-inferentie in- of uitschakelen, de strategie voor verplichte velden (doorsnede versus vereniging) en of alle velden als `required` worden gemarkeerd wanneer er slechts één voorbeeld wordt gegeven.
-
4
Genereren
Het schema wordt uitgevoerd met `$schema`, `title`, `type`, `properties` en geneste `$ref`s voor herhaalde subobjecten.
Wat de inferentie goed doet
- Typen: string, number, integer, boolean, null, array, object.
- Nullbaarheid: een veld dat in het ene voorbeeld
nullis en in het andere een string, wordt["string", "null"]. - Array-elementen: homogene arrays leveren één
items-schema op; heterogene arrays leverenprefixItemsop. - Opsommingen (enum): als alle waargenomen waarden uit een kleine verzameling komen (instelbaar, standaard 10 verschillende waarden), wordt een
enumuitgevoerd. - Verplicht: bij meerdere voorbeelden wordt de doorsnede van sleutels
required; bij één voorbeeld zijn alle sleutels verplicht, tenzij u zich afmeldt. - Formaten: strings die overeenkomen met ISO-8601-datums, e-mailadressen of URI’s krijgen een afgeleid
format.
Wat de inferentie niet kan weten
- Bedoeling versus voorbeeld: een voorbeeld
age: 25leidttype: integeraf, maar kan niet weten dat u ooknullaccepteert. Geef meerdere voorbeelden die randgevallen dekken. - Beperkingen:
minLength,maximum,pattern, deze moet u handmatig toevoegen. De inferentie raadt geen grenzen op basis van voorbeelden. - Bedrijfslogica: “precies één van deze drie velden moet ingesteld zijn” vereist
oneOf, niet af te leiden. - Referenties: de generator levert een plat schema op. Als u herhaalde vormen wilt uitsplitsen naar
$defs, doe dat dan na het genereren.
Voorbeelduitvoer
Uit één voorbeeld:
{ "name": "Alice", "age": 30, "tags": ["admin", "user"] }
Het afgeleide schema (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"]
}
Veelvoorkomende fouten
- Afleiden uit één voorbeeld. Het schema wordt overfit: elk veld wordt verplicht, zonder tolerantie voor null. Geef altijd minstens 5–10 gevarieerde voorbeelden.
integergebruiken terwijl unumberbedoelde. Als een voorbeeld een decimaal bevat, wordt het afgeleide typenumber; als alle waarden gehele getallen zijn, wordt hetinteger. Neem voor velden die beide kunnen zijn een voorbeeld met een decimaal op.- Optionele velden vergeten. Een veld dat in 4 van de 5 voorbeelden voorkomt maar in 1 ontbreekt, wordt optioneel, zoals bedoeld. Als alle 5 voorbeelden het toevallig bevatten, markeert het schema het als verplicht, ook al is het in uw API eigenlijk optioneel.
Veelgestelde vragen
Hoe meer, hoe beter, maar 5–10 gevarieerde voorbeelden leveren doorgaans een bruikbaar schema op. Met één voorbeeld wordt elk veld verplicht en kan de nullbaarheid niet worden afgeleid, geef daarom altijd meerdere varianten als dat kan.
Standaard draft 2020-12. Draft 07 en 04 zijn beschikbaar voor compatibiliteit met OpenAPI 3.0 (dat een subset van draft 05/07 gebruikt).
Nee. Beperkingen uit voorbeelden afleiden zou het schema overfitten. Voeg minLength, maximum, pattern enzovoort handmatig toe na het genereren, op basis van uw bedrijfsregels.
Ja. Als u een JSON-array plakt, behandelt de generator elk element als een afzonderlijk voorbeeld en produceert een schema dat een enkel element beschrijft, niet de buitenste array. Schakel de optie “als arraycontainer behandelen” in als u juist de vorm van de buitenste array wilt.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
E-mailvalidator
Valideer een e-mailadres: RFC 5322-syntaxcontrole, live MX-record-zoekopdracht, plus details over lokaal deel, domein en lengte. Er wordt geen e-mail verstuurd.
EditorConfig-generator
Genereer een .editorconfig-bestand met uw regels voor inspringstijl en -grootte, regeleinde, tekenset en witruimte voor consistente opmaak in alle IDE's en editors.
HTML-opmaker
Formatteer HTML lokaal in de browser met twee of vier spaties inspringing. HTML wordt niet geüpload of gevalideerd.
Tool beschikbaar in andere talen
- Trình tạo JSON Schema [VI]
- JSON-Schema-Generator [DE]
- Gerador de Esquema JSON [PT]
- JSON 스키마 생성기 [KO]
- เครื่องมือสร้าง JSON Schema [TH]
- مولّد مخطط JSON [AR]
- JSON-schemagenerator [SV]
- Générateur de schéma JSON [FR]
- Generator JSON Schema [ID]
- JSONスキーマジェネレーター [JA]
- Generator schematów JSON [PL]
- Generador de Esquema JSON [ES]
- JSON Schema Generator [EN]
- Generatore di JSON Schema [IT]
- Генератор JSON-схем [RU]
- JSON Şema Oluşturucu [TR]
- JSON 模式生成器 [ZH]