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
Webpack-configuratiegenerator
Maak een webpack.config.js voor webpack 5 vanuit een kort formulier: stel entry, uitvoermap en mode in en zet TypeScript, Babel, een CSS-loader, HtmlWebpackPlugin en een dev-server aan.
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
SVG-golfgenerator
Genereer een vloeiende SVG-golfscheiding voor headers en footers met instelbare amplitude, frequentie, kleur en positie boven of onder. Kopieer de SVG-code.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
Tool beschikbaar in andere talen
- เครื่องมือสร้าง JSON Schema [TH]
- Trình tạo JSON Schema [VI]
- Generator JSON Schema [ID]
- Generator schematów JSON [PL]
- JSONスキーマジェネレーター [JA]
- مولّد مخطط JSON [AR]
- JSON-Schema-Generator [DE]
- Gerador de Esquema JSON [PT]
- JSON 스키마 생성기 [KO]
- Generador de Esquema JSON [ES]
- Générateur de schéma JSON [FR]
- JSON-schemagenerator [SV]
- JSON Schema Generator [EN]
- Generatore di JSON Schema [IT]
- Генератор JSON-схем [RU]
- JSON Şema Oluşturucu [TR]
- JSON 模式生成器 [ZH]