JSON Şeması Doğrulayıcı
Bir şema ve bir belge yapıştırın, taslağı seçin; doğrulayıcı belgeyi şemanızda kullanılan her anahtar kelimeye göre denetler, type, required, enum, oneOf, $ref, if/then/else, özel format, ve her ihlali, sorunlu konumu tam olarak gösteren JSONPath tarzı bir işaretçiyle raporlar.
Bir şemaya göre nasıl doğrulama yapılır
-
1
Şemayı yapıştırın
JSON Şeması taslak 04, 07 veya 2020-12. `$schema` anahtar kelimesi (varsa) taslağı otomatik olarak seçer.
-
2
Belgeyi yapıştırın
Doğrulamak istediğiniz JSON. Önce geçerli bir JSON olmalıdır; sözdizimi hataları şema değerlendirmesinden önce gösterilir.
-
3
Doğrulayın
Her ihlal, bir JSON işaretçisi (`/user/email`) ve başarısız olan anahtar kelime (`format`, `required` vb.) ile birlikte raporlanır.
-
4
Düzeltin ve yeniden doğrulayın
İki taraftan birini düzenleyin; durum anında güncellenir.
Desteklenen anahtar kelimeler
Çekirdek: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Bileşim: allOf, anyOf, oneOf, not.
Uygulayıcılar: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Koşullar: if, then, else, dependentSchemas.
Referanslar: $ref, $defs, $id, $anchor.
Biçimler (etkinleştirildiğinde doğrulama ile): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Hata çıktısı
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
Her hata, başarısız olan yolu ve anahtar kelimeyi içerir; bu da düzenleyicinizde hızlıca konumlandırmanızı sağlar.
Sizi yanıltan taslak farklılıkları
| Anahtar kelime | Taslak 04 | Taslak 07 | Taslak 2020-12 |
|---|---|---|---|
id ile $id |
id |
$id |
$id |
exclusiveMaximum bool olarak |
Evet | Sayı | Sayı |
items dizi sözdizimi |
items |
items |
prefixItems |
$ref aynı düzeydeki anahtarlara izin verir |
Hayır | Hayır | Evet |
Doğru taslağı ayarlayın; draft-04 şemasını 2020-12 olarak doğrulamak id ve diğer bazı ince ayrıntıları yanlış yorumlar.
Tipik iş akışları
- API sözleşmesi testi: dağıtımdan önce, oluşturulan/güncellenen OpenAPI şemasını gerçek örnek yanıtlara göre çalıştırın.
- Yapılandırma sıkılaştırma: birleştirmeden önce CI içinde her YAML/JSON yapılandırmasını bir şemaya göre doğrulayın.
- Veri alımı: beklenen biçime uymayan yükleri en baştan, açık bir hata mesajıyla reddedin.
Yaygın hatalar
formatzorlamasını unutmak. Varsayılan olarak çoğu doğrulayıcı, bilinmeyen biçimleri yalnızca ek açıklama olarak ele alır. Geçersiz e-postaları ve tarihleri gerçekten reddetmek için katı biçim doğrulamasını etkinleştirin.oneOf’u aşırı kullanmak.oneOf’un iki dalı çakışırsa belge başarısız olur (tam olarak bir tanesiyle eşleşmelidir).anyOfveya ayırt edici desenler kullanın.additionalProperties: falseile katı şemalar. Yeni bir isteğe bağlı alan eklemek, uyumluluğu bozan bir değişikliğe dönüşür. Gerçekten kapalı bir nesne istemiyorsanız bunu belirtmeyin.
Sık Sorulan Sorular
Evet. Taslak 2020-12, 07 ve 04’ün tamamı desteklenir. Doğrulayıcı, doğru olanı seçmek için belgenizden $schema anahtar kelimesini okur ya da arayüzdeki seçiciye geri döner.
Standart biçimler (email, date-time, uuid, ipv4 vb.) katı biçim doğrulaması etkinleştirildiğinde doğrulanır. Şemanızda bildirilen özel biçimler, pattern ile bir regex sağlamadığınız sürece yalnızca ek açıklama olarak ele alınır.
Dahili başvurular (#/$defs/foo) otomatik olarak çözülür. Dış HTTP başvuruları güvenlik nedeniyle varsayılan olarak getirilmez. Önce dış başvurularınızı satır içine ekleyin ya da uzaktan $ref çözümlemeyi destekleyen özel bir araç kullanın.
Evet. Hem şema hem de belge yerelde kalır. Yapıştırılan içerik asla yüklenmez, dahili API sözleşmeleri ve hassas veriler için güvenlidir.
İ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
- Penentu Struktur JSON [ID]
- Trình xác thực JSON Schema [VI]
- Validador de JSON Schema [ES]
- Validateur de schéma JSON [FR]
- JSON 스키마 검증기 [KO]
- JSON Schema-validator [NL]
- JSON Schema-validator [SV]
- JSONスキーマバリデーター [JA]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- أداة التحقق من مخطط JSON [AR]
- JSON-Schema-Validator [DE]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [PT]
- Validator di JSON Schema [IT]
- Валидатор JSON Schema [RU]
- JSON 模式验证器 [ZH]
- JSON Schema Validator [EN]