JSON Şema Oluşturucu
Bir veya birden fazla JSON örneği yapıştırın; oluşturucu, yeni yükleri doğrulamak için kullanabileceğiniz bir JSON şeması çıkarır. Türleri algılar, her örnekte görünen alanları zorunlu olarak işaretler, değerler küçük ve kapalı bir kümeden geldiğinde enum çıkarır ve JSON şeması draft 2020-12 ile uyumlu çıktı üretir.
JSON şeması nasıl oluşturulur
-
1
Örnek belgeleri yapıştırın
Bir veya birden fazla gerçek yük; çeşitlilik ne kadar fazlaysa çıkarılan şema o kadar doğru olur.
-
2
Taslağı seçin
draft 2020-12 (mevcut), draft 07 (yaygın olarak desteklenir) veya draft 04 (eski OpenAPI için).
-
3
Çıkarımı ayarlayın
Enum çıkarımını açıp kapatma, zorunlu alan stratejisi (kesişim veya birleşim) ve yalnızca bir örnek verildiğinde tüm alanların `required` olarak işaretlenip işaretlenmeyeceği.
-
4
Oluştur
Şema; `$schema`, `title`, `type`, `properties` ile birlikte ve tekrar eden alt nesneler için iç içe `$ref` değerleriyle üretilir.
Çıkarımın iyi yaptığı şeyler
- Türler: string, number, integer, boolean, null, array, object.
- Null olabilirlik: bir örnekte
null, başka bir örnekte dize olan bir alan["string", "null"]olur. - Dizi öğeleri: homojen diziler tek bir
itemsşeması üretir; heterojen dizilerprefixItemsüretir. - Enum: gözlemlenen tüm değerler küçük bir kümeden geliyorsa (yapılandırılabilir, varsayılan 10 farklı değer), bir
enumüretilir. - Zorunlu: birden fazla örnekte anahtarların kesişimi
requiredolur; tek bir örnekte, vazgeçmediğiniz sürece tüm anahtarlar zorunludur. - Formatlar: ISO-8601 tarihleri, e-postalar veya URI’lerle eşleşen dizeler çıkarılmış bir
formatalır.
Çıkarımın bilemeyeceği şeyler
- Amaç ve örnek karşılaştırması:
age: 25örneğitype: integerçıkarır, ancaknulldeğerini de kabul ettiğinizi bilemez. Uç durumları kapsayan birden fazla örnek verin. - Kısıtlamalar:
minLength,maximum,pattern, bunları elle eklemeniz gerekir. Çıkarım, örneklerden sınırları tahmin etmez. - İş mantığı: “bu üç alandan tam olarak biri ayarlanmalıdır” koşulu
oneOfgerektirir, çıkarılamaz. - Referanslar: oluşturucu düz bir şema üretir. Tekrar eden yapıları
$defsiçine ayırmak isterseniz, bunu oluşturmadan sonra yapın.
Örnek çıktı
Tek bir örnekten:
{ "name": "Alice", "age": 30, "tags": ["admin", "user"] }
Çıkarılan şema (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"]
}
Yaygın hatalar
- Tek bir örnekten çıkarım yapmak. Şema aşırı uyum sağlar, her alan zorunlu hale gelir ve null’a tolerans kalmaz. Her zaman en az 5–10 çeşitli örnek verin.
numberdemek isterkenintegerkullanmak. Herhangi bir örnekte ondalık varsa çıkarılan türnumberolur; hepsi tam sayıysaintegerolur. Her ikisi de olabilecek alanlar için ondalıklı bir örnek ekleyin.- İsteğe bağlı alanları unutmak. 5 örnekten 4’ünde bulunan ancak 1’inde eksik olan bir alan isteğe bağlı olur, bu kasıtlıdır. Beş örneğin hepsi bu alanı içeriyorsa, API’nizde aslında isteğe bağlı olsa bile şema onu zorunlu olarak işaretler.
Sık Sorulan Sorular
Ne kadar çok, o kadar iyi; ancak genellikle 5–10 çeşitli örnek makul bir şema üretir. Tek bir örnekle her alan zorunlu hale gelir ve null olabilirlik çıkarılamaz, mümkünse her zaman birden fazla varyant sağlayın.
Varsayılan olarak draft 2020-12. OpenAPI 3.0 uyumluluğu için draft 07 ve draft 04 de mevcuttur (OpenAPI, draft 05/07’nin bir alt kümesini kullanır).
Hayır. Örneklerden kısıtlama çıkarmak şemayı aşırı uyumlu hale getirir. minLength, maximum, pattern vb. değerleri, iş kurallarınıza göre oluşturmadan sonra elle ekleyin.
Evet. Bir JSON dizisi yapıştırırsanız, oluşturucu her öğeyi ayrı bir örnek olarak ele alır ve dış diziyi değil, tek bir öğeyi tanımlayan bir şema üretir. Bunun yerine dış dizinin yapısını istiyorsanız “dizi kapsayıcısı olarak ele al” seçeneğini etkinleştirin.
İlgili Araçlar
ASCII Tablosu Referansı
NUL, LF ve DEL dahil her kod için ondalık, onaltılık, sekizlik ve ikili değerlerle HTML sayısal karakter başvurusu gösterimini sunan tam ASCII tablosu.
HTML Karakter Referansı
HTML varlıklarının aranabilir listesi; adlandırılmış ve sayısal kodlarıyla birlikte özel karakter ve semboller için tek tıkla kopyalama.
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Klavye kısayolları başvurusu
macOS, Windows ve Linux’ta VS Code, Chrome ve GNU Readline kullanan Bash için belgelenmiş varsayılan kısayolları arayın.
EditorConfig Oluşturucu
Girinti stili ve boyutu, satır sonu, karakter kümesi ve boşluk kurallarınızla bir .editorconfig dosyası oluşturarak IDE ve editörler arasında tutarlı biçimlendirme sağlayın.
E-posta Doğrulayıcı
Bir e-posta adresini doğrulayın: RFC 5322 sözdizimi kontrolü, canlı MX kaydı sorgulama, ayrıca yerel kısım, alan adı ve uzunluk bilgileri. Hiçbir e-posta gönderilmez.
Araç diğer dillerde mevcuttur
- 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]
- JSON-schemagenerator [NL]
- 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 模式生成器 [ZH]