JSON Şema Doğrulayıcı
JSON'u JSON Şema (Draft 2020-12) ile doğrulayın; tam örnek yollarıyla hataları görün
JSON
Şema
JSON Şema Doğrulayıcı
JSON'u JSON Şema (Draft 2020-12) ile doğrulayın; tam örnek yollarıyla hataları görün
Özellikler
- Ajv (fiili referans uygulama) kullanarak JSON örneklerini herhangi bir JSON Şema'ya karşı doğrular; Draft-07, 2019-09 ve 2020-12 anahtar sözcükleri tam olarak desteklenir
- Hata raporu her başarısızlığı `yol: mesaj` olarak listeler — örnek yolları RFC 6901 JSON Pointer notasyonunu izler, böylece iç içe veride hatalı düğüme doğrudan inebilirsiniz
- Tüm hatalar tek geçişte (allErrors: true) raporlanır; ilk hatada durmaz — her sorunu aynı anda görün
- Standart dışı veya genişletilmiş şemaların derlenebilmesi için katı mod kapatılmıştır; birleşim türleri kullanan şemalar için allowUnionTypes açıktır
- Örnek Yükle düğmesi her iki panele küçük bir örnekle doldurur (gerekli id ve name içeren nesne artı tags dizisi); yazmadan doğrulayıcının çalıştığını görün
- Hataları kopyala düğmesi tüm hata listesini satırlarla ayrılmış `yol: mesaj` bloğu olarak verir — doğrudan bilete veya test fikstürüne yapıştırın
- Tamamen istemci tarafı: Ajv tarayıcınızda çalışır, hiçbir JSON veya şema sunucuya yüklenmez ve sayfa yüklendikten sonra araç çevrimdışı çalışır
- Ayrı ayrıştırma hatası raporu, JSON-bozuk girişi şema-ihlali hatalardan ayırır — sözdizimini mi sözleşmeyi mi düzelteceğinizi her zaman bilirsiniz
Nasıl Kullanılır
- Doğrulamak istediğiniz JSON örneğini sol metin alanına yapıştırın.
- JSON Şemanızı sağ metin alanına yapıştırın — Draft 2020-12, 2019-09 veya Draft-07 kullanın; Ajv $schema'ya göre otomatik seçer.
- Doğrula'ya tıklayın. Her iki giriş de temiz ayrıştırılırsa Ajv şemayı derler ve doğrulamayı çalıştırır.
- Sonucu okuyun: yeşil Geçerli pankartı örneğin eşleştiği anlamına gelir; aksi takdirde her başarısızlık JSON Pointer yolunu ve okunabilir Ajv mesajını gösterir.
- Tam raporu paylaşmak veya bir fikstür dosyasında saklamak için Hataları kopyala'ya tıklayın.
- Kendi verinizi yapıştırmadan önce davranışı doğrulamak isterseniz her iki paneli çalışan bir örnekle doldurmak için Örnek Yükle'yi kullanın.
İpuçları ve En İyi Uygulamalar
- Ajv'ın doğru taslak anlamını seçmesi için şemanıza her zaman bir $schema alanı ekleyin.
- Alan adlarındaki yazım hatalarını erken yakalamak için geliştirme sırasında additionalProperties: false tercih edin.
- Ortak alt şemaları paylaşmak için $defs (veya Draft-07'de definitions) kullanın — referanslar şemaları DRY ve gözden geçirilebilir yapar.
- Yerel doğrulama geçerken CI'da başarısız oluyorsa her iki ortamda aynı Ajv sürümü ve taslaklarının kullanıldığını kontrol edin.
- Hataları kopyala çıktısını test fikstürlerinize kaydedin, böylece gerilemeler şema-ihlali farkları olarak ortaya çıkar.
SSS
Hangi JSON Schema taslakları desteklenir?
Draft-07, Draft 2019-09 ve Draft 2020-12. Ajv, şemanızın $schema alanına göre meta-şemayı otomatik seçer; atlanırsa Draft-07 anlamına geri döner. Yeni 2020-12 spec definitions'ı $defs ile, items'ı prefixItems/items ile değiştirir — hem eski hem yeni anahtarlar kabul edilir.
Bir hatadaki yol ne anlama gelir?
Ajv instancePath'ı RFC 6901 JSON Pointer notasyonunda raporlar: '/users/0/email' "ilk kullanıcının email özelliği" anlamına gelir. Kök boş dizedir (arayüzde $ olarak gösterilir). Bu, iç içe veride başarısız alana geri dönmeyi kolaylaştırır.
Şemam neden derlenmiyor?
Yaygın nedenler: bozuk JSON (fazla virgül, tek tırnak, tırnaksız anahtarlar); var olmayan bir tanıma işaret eden $ref; veya Ajv'ın tanımadığı katı modda bir anahtar. Şema ayrıştırma hatası paneli Ajv'ın tam derleme hatasını gösterir; katı mod burada zaten kapalıdır, böylece çoğu standart dışı şema derlenir.
Neden 'unknown keyword' veya 'unknown format' hatası alıyorum?
JSON Schema standart anahtar sözcükleri (type, required, properties vb.) yerleşiktir. 'date-time', 'uri', 'email' gibi özel format adları varsayılan olarak doğrulanmaz — ajv-formats yüklemediğiniz sürece Ajv bunları açıklama olarak işler. Formatların kontrol edilmesi gerekiyorsa ajv-formats yüklü bir derleme adımında doğrulama çalıştırın.
Doğrulayıcı ilk hatada durur mu?
Hayır. Ajv allErrors: true ile yapılandırılmıştır, bu nedenle her başarısızlık raporlanır. Derinden iç içe hatalar için bu ayrıntılı olabilir; yalnızca ilkini istiyorsanız derlemenizde JSON+şemayı kendi ajv() çağrınıza allErrors: false ile verin.
Çok büyük JSON belgeleri için çalışır mı?
Evet, ancak kodda doğru desen bir-kez-derle-birçok-kez-doğrula'dır. Bu araç her Doğrula tıklamasında yeniden derler; geliştirme zamanı kontrolleri için iyidir ama üretim sıcak yolları için değildir. Burada kullanılan Ajv yapısı standart ESM paketidir; tipik şemalar için milisaniye derleme süreleri bekleyin.
JSON'um ve şemam herhangi bir yere gönderiliyor mu?
Hayır. Her iki metin alanı tarayıcınızda kalır; Ajv yerel olarak çalışır; içeriği günlüklemiyoruz, saklamıyoruz veya telemetrelemiyoruz. DevTools Ağ sekmesinde doğrulayabilirsiniz — Doğrula'ya bastığınızda ağ çağrısı yoktur.
Bunun JSON Formatlayıcı'daki şema sekmesiyle farkı nedir?
JSON Formatlayıcı'nın şema sekmesi tek seferlik kontroller için aynı Ajv destekli SchemaService'i biçimlendirme, JSONPath ve ağaç görünümüyle birlikte kullanır. Bu bağımsız doğrulayıcı size iki büyük yapıştırma paneli, örnek yükleyici, hata-kopyalama dışa aktarımı ve yer imine eklenecek veya paylaşılacak tek bir özel URL verir — doğrulama tek göreviniz olduğunda daha iyidir.