Rehber

JSON örneğinden JSON Schema oluşturma adımları

Geçerli bir JSON örneği girerek JSON Schema temsili oluşturabilir ve isteğe bağlı bir başlık belirleyebilirsiniz. Oluşan yapıyı, örnekte görülen alanlarla kendi veri kurallarınızı karşılaştırarak değerlendirin; görünmeyen koşulları ayrıca eklemeniz gerekir.

Araç JSON Şema Oluşturucu

Aracın kullanım amacı

Bu araç, sağladığınız JSON örneğini ayrıştırarak JSON Schema temsiline dönüştürür. API yanıtı, yapılandırma belgesi veya başka bir veri kaydı için başlangıç yapısı hazırlarken kullanılabilir. Örnek olarak bir nesne, dizi ya da null, boolean, integer, number veya string türünde tek bir JSON değeri verebilirsiniz. Oluşan yapı, gönderilen örnekte görülen özellikleri temel alır; örnekte bulunmayan iş kurallarının kendiliğinden eklenmesini beklememelisiniz.

Örnek veri girişine bir metin sağlanır ve isteğe bağlı başlık alanı kullanılabilir. Başlık boş bırakıldığında sonuçta “Generated Schema” değeri kullanılır. Bu seçim, JSON içindeki alanları veya türleri değiştirmez; yalnızca oluşturulan temsilin adlandırılmasını etkiler. Kullanılabilir bir örnek verilmediğinde işlem sonuç üretmez. Bu yüzden aracı, amaçlanan veri sözleşmesini tek başına tamamlayan bir çözümden çok, gözlenen yapıyı başlangıç noktası olarak hazırlayan bir yardımcı şeklinde değerlendirin.

Sonucu kullanmadan önce örneğinizin gerçek veri beklentinizi ne ölçüde yansıttığını düşünün. Bir kayıt, bir koleksiyon veya yalnızca bir ilkel değer seçmeniz, ortaya çıkan yapının kapsamını doğrudan etkiler. Daha sonra gerekli koşulları ve örnekte görünmeyen kuralları kendiniz gözden geçirebilirsiniz.

Uygulama sırası

  1. Şema temeliniz olacak JSON örneğini hazırlayın. Örneğin {"id":12,"email":"ayse@example.com","aktif":true} geçerli bir nesnedir. Anahtar ve metin değerlerinde çift tırnak kullanın; virgül, köşeli parantez ve süslü parantezlerin yerleşimini kontrol edin. İsterseniz dizi veya tekil bir JSON değeri de seçebilirsiniz.

  2. Hazırladığınız metni örnek veri girişine yazın. Ana giriş boş kalırsa, uygun bir değer mevcut olduğu sürece json, data, text, input, value veya sample adlarıyla sunulan alternatiflerden ilk uygun olan kullanılabilir. Bu seçeneklerin hiçbirinde kullanılabilir veri yoksa işlem başarısız olur.

  3. İsteğe bağlı başlık alanını doldurun. Kendi başlığınızı yazabilir ya da alanı boş bırakabilirsiniz; boş durumda varsayılan “Generated Schema” değeri devreye girer. Başlık tercihi, örnekten çıkarılan özelliklerin yapısını değiştirmez.

  4. Oluşturma işlemini başlatın ve sonucu inceleyin. Biçimi bozuk JSON dönüştürülmez, reddedilir. Seçilen girişin UTF-8 kodlaması 1.000.000 baytı aşarsa giriş kabul edilmez; bu nedenle büyük örneklerde metnin boyutunu da hesaba katın.

  5. Üretilen temsili yapısal açıdan okuyun. Nesnelerde gözlenen üye adları gerekli olarak listelenir ve ek özelliklere izin verilmez. Diziler dizi yapısında gösterilir; boş bir dizide öğe şeması kısıtlanmaz, farklı öğe yapıları ise yinelenen şemalar çıkarıldıktan sonra anyOf altında birleştirilebilir. İlkel değerlerde null, boolean, integer ve number türleri ayırt edilir. Metinler string olarak çıkarılır ve uygun örüntülerle eşleştiğinde email, uuid, uri, ipv4, date-time, date veya time biçimlerinden biri eklenebilir.

Sonucu değerlendirme

Sonuç, sağlanan örneğin ayrıştırılabilen yapısından türetilen bir JSON Schema temsilidir. Bir nesne örneğinde görülen alanların gerekli olarak listelenmesi, yalnızca o örneğin bu alanları içerdiğini gösterir. Bu davranış, gelecekteki her kaydın aynı özellikleri taşıması gerektiğini veya alanlar arasındaki iş kurallarının otomatik olarak bilindiğini kanıtlamaz.

Dizi içindeki örnekler birbirinden farklı yapılara sahipse anyOf, gözlenen alternatifleri birlikte ifade edebilir. Bu ifade, seçeneklerin örnekte görüldüğünü anlatır; alanların hangi koşulda seçileceğine ilişkin ayrıca tanımlanmamış bir açıklama eklemez. Boş dizi ise öğeler hakkında gözlem sunmadığı için öğe yapısını sınırlamaz. Metin biçimleri de yalnızca desteklenen örüntülerle eşleşen değerlerde görülebilir.

Çıktıda JSON Schema draft-07 tanımlayıcısı bulunur. Temsili kullanacağınız sisteme aktarmadan önce gerekli alanları, izin verilen ek özellikleri, dizi seçeneklerini ve özel değer kısıtlarını kendi beklentinizle karşılaştırın. Örnek veri bu ayrıntıları içermiyorsa, söz konusu kuralları ayrıca düzenlemeniz gerekir. Böylece gözlenen yapı ile sonradan belirlediğiniz veri politikalarını birbirinden ayırabilirsiniz.

Uygulamalı örnek

Bir geliştirici, tek bir kullanıcı JSON kaydından başlangıç yapısı çıkarmak ve başlık için varsayılan değeri kullanmak ister.

{"id":12,"email":"ayse@example.com","aktif":true} kullanıcı kaydını örnek veri girişine yazın, başlık alanını boş bırakın ve oluşturma işlemini başlatın; ardından alan türlerini inceleyinку. Bir geliştirici, tek bir kullanıcı kaydının yapısını başlangıç noktası yapmak ve varsayılan başlığı korumak ister.

Çıktı nesne türünü, id için integer, email için string ve uygun örüntü eşleşirse email biçimini gösterir; gözlenen alanlar gerekli olarak listelenir ve boş başlıkta “Generated Schema” kullanılır.

Sınırlamalar

  • Temsil, örnekte gözlenen bilgilerle sınırlıdır; görünmeyen kurallar otomatik eklenmez ve çıktı JSON Schema draft-07 tanımlayıcısını içerir.

Sık yapılan hatalar

  • Boş bırakılan veya sözdizimi geçersiz olan örnek işlem sonucunu engeller; metni düzeltip örnek veri girişine kullanılabilir bir JSON değeri yeniden sağlayın.

Sık sorulan sorular

Hangi JSON girişlerini kullanabilirim?

Koşul, sağlanan metnin geçerli JSON olmasıdır. Nesne, dizi veya null, boolean, integer, number ya da string türündeki tekil değer örnek olarak kullanılabilir; sözdizimi bozuk içerik reddedilir ve dönüştürülmez.

Oluşturulan şema bütün veri kurallarını tanımlar mı?

Hayır; temsil, verilen örnekte gözlenen yapıyı çıkarır. Örnek kayıtta yer almayan isteğe bağlı alanlar, alanlar arası ilişkiler ve özel iş kuralları için sonucu ayrıca düzenlemeniz gerekir. Bu nedenle tek örneği nihai veri sözleşmesi saymayın.

Başlık girmezsem ne olur?

Başlık alanını boş bıraktığınızda “Generated Schema” değeri kullanılır. Kendi başlığınızı yazmanız, örnek JSON'dan çıkarılan alanları, türleri veya dizi yapısını değiştirmez; yalnızca adlandırmayı etkiler.

Araç

JSON Şema Oluşturucu