JSON-schemagenerator
Klistra in ett eller flera JSON-exempel så härleder generatorn ett JSON-schema som du kan använda för att validera nya nyttolaster. Den identifierar typer, markerar fält som obligatoriska när de förekommer i varje exempel, härleder enum-värden när värdena hämtas från en liten sluten mängd och skapar utdata som följer JSON-schema draft 2020-12.
Så här genererar du ett JSON-schema
-
1
Klistra in exempeldokument
En eller flera verkliga nyttolaster; ju större variation, desto mer exakt blir det härledda schemat.
-
2
Välj draft
draft 2020-12 (gällande), draft 07 (brett stödd) eller draft 04 (för äldre OpenAPI).
-
3
Justera härledningen
Slå på/av enum-härledning, strategi för obligatoriska fält (snitt eller union) och om alla fält ska markeras som `required` när endast ett exempel anges.
-
4
Generera
Schemat skapas med `$schema`, `title`, `type`, `properties` samt nästlade `$ref` för upprepade delobjekt.
Vad härledningen gör bra
- Typer: string, number, integer, boolean, null, array, object.
- Nullbarhet: ett fält som är
nulli ett exempel och en sträng i ett annat blir["string", "null"]. - Array-element: homogena arrayer ger ett enda
items-schema; heterogena arrayer gerprefixItems. - Enum: om alla observerade värden hör till en liten mängd (konfigurerbart, standard 10 olika värden) skapas ett
enum. - Obligatorisk: med flera exempel blir snittet av nycklar
required; med ett exempel är alla nycklar obligatoriska om du inte väljer bort det. - Format: strängar som matchar ISO-8601-datum, e-postadresser eller URI:er får ett härlett
format.
Vad härledningen inte kan veta
- Avsikt kontra exempel: exemplet
age: 25härledertype: integer, men kan inte veta att du även accepterarnull. Skicka flera exempel som täcker gränsfall. - Begränsningar:
minLength,maximum,pattern, dessa måste du lägga till manuellt. Härledningen gissar inte gränser utifrån exempel. - Affärslogik: kravet “exakt ett av dessa tre fält måste vara satt” kräver
oneOf, kan inte härledas. - Referenser: generatorn skapar ett platt schema. Om du vill bryta ut upprepade strukturer till
$defs, gör det efter genereringen.
Exempel på utdata
Från ett enda exempel:
{ "name": "Alice", "age": 30, "tags": ["admin", "user"] }
Det härledda schemat (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"]
}
Vanliga misstag
- Att härleda från ett enda exempel. Schemat blir överanpassat, varje fält blir obligatoriskt och det finns ingen tolerans för null. Ange alltid minst 5–10 varierade exempel.
- Att använda
integernär du menadenumber. Om något exempel innehåller ett decimaltal blir den härledda typennumber; om alla är heltal blir deninteger. För fält som kan vara båda, ta med ett exempel med ett decimaltal. - Att glömma valfria fält. Ett fält som finns i 4 av 5 exempel men saknas i 1 blir valfritt, som avsett. Om alla 5 exempel råkar innehålla det markerar schemat det som obligatoriskt, även om det egentligen är valfritt i ditt API.
Vanliga frågor
Ju fler desto bättre, men 5–10 varierade exempel ger vanligtvis ett rimligt schema. Med ett enda exempel blir varje fält obligatoriskt och nullbarheten kan inte härledas, ange därför alltid flera varianter om du kan.
draft 2020-12 som standard. draft 07 och 04 finns tillgängliga för kompatibilitet med OpenAPI 3.0 (som använder en delmängd av draft 05/07).
Nej. Att härleda begränsningar från exempel skulle överanpassa schemat. Lägg till minLength, maximum, pattern osv. manuellt efter genereringen, utifrån dina affärsregler.
Ja. Om du klistrar in en JSON-array behandlar generatorn varje element som ett separat exempel och skapar ett schema som beskriver ett enskilt element, inte den yttre arrayen. Aktivera alternativet “behandla som array-behållare” om du i stället vill ha formen på den yttre arrayen.
Relaterade verktyg
Webpack-konfigurationsgenerator
Skapa en webpack.config.js för webpack 5 med vanlig JavaScript, React eller Vue: TypeScript, Babel, CSS eller Sass, bilder, HtmlWebpackPlugin, en utvecklingsserver och raden för npm install.
Protocol Buffers-avkodare
Avkoda Protobuf-byte lokalt från hex, Base64, Base64URL, text eller fil, granska fälttolkningar och exportera en privat rapport.
XSD-validerare
Validera ett XML-dokument mot ett XSD-schema och rapportera element- och typavvikelser med exakta radnummer.
YAML till JSON
Omvandla YAML-konfiguration till JSON för verktyg och API:er som bara accepterar JSON. Hanterar ankare, merge-nycklar och nästlade strukturer.
XML-formaterare
Snygga till XML-dokument med konsekvent indrag och fånga formfel med exakta radnummer.
XML till JSON
Omvandla XML-dokument till ren JSON, med bevarade attribut, textnoder och arrayer där det behövs. Tre stilar: kompakt, Badgerfish eller literal.
Verktyget finns på andra språk
- JSON-Schema-Generator [DE]
- JSON 스키마 생성기 [KO]
- Générateur de schéma JSON [FR]
- JSON-schemagenerator [NL]
- Generator JSON Schema [ID]
- Gerador de Esquema JSON [PT]
- Generator schematów JSON [PL]
- เครื่องมือสร้าง JSON Schema [TH]
- Trình tạo JSON Schema [VI]
- Generador de Esquema JSON [ES]
- JSONスキーマジェネレーター [JA]
- مولّد مخطط JSON [AR]
- JSON Schema Generator [EN]
- Generatore di JSON Schema [IT]
- JSON Şema Oluşturucu [TR]
- Генератор JSON-схем [RU]
- JSON 模式生成器 [ZH]