एक नमूना दस्तावेज़ से उत्पन्न स्कीमा उसमें जो था उसका वर्णन करता है। यह एक शुरुआती बिंदु है, कहीं और से दिया गया विनिर्देश नहीं, और यह उपकरण इसे उस तरह से व्यवहार करने के लिए बनाया गया है बजाय इसके कि डेटा जो वास्तव में समर्थन करता है उससे अधिक निश्चितता का संकेत दे।
JSON Schema जनरेटर का उपयोग करना
एक दस्तावेज़, या कई रिकॉर्ड्स का एक एरे पेस्ट करें, एक ड्राफ़्ट चुनें (2020-12 या Draft 07), स्ट्रिंग प्रारूपों का पता लगाना है या नहीं, और आवश्यक कुंजियों को चिह्नित करना है या नहीं, फिर Schema जनरेट करें दबाएं।
दिए गए
[
{"id": 1, "name": "a", "score": 1},
{"id": 2, "name": "b", "score": 1.5}
]
दोनों रिकॉर्ड्स में id, name और score है, इसलिए तीनों required
में दिखाई देते हैं। id हर रिकॉर्ड में एक पूर्णांक है और "integer"
बन जाता है। score में दूसरे रिकॉर्ड में एक भिन्न है, 1.5, इसलिए
इसका प्रकार "integer" के बजाय व्यापक "number" है, क्योंकि यह वास्तव
में गैर-पूर्णांक मान रखता है।
एक कुंजी चुपचाप required से क्यों गायब हो सकती है
एक तीसरा रिकॉर्ड जोड़ें, {"id": 3, "name": "c"}, बिना score फ़ील्ड
के, और फिर से जनरेट करें: score अब आवश्यक नहीं है, जबकि id और
name आवश्यक बने रहते हैं। एक कुंजी केवल तभी आवश्यक चिह्नित होती है
जब एरे में हर एक रिकॉर्ड उसे ले जाता है। एक रिकॉर्ड में एक फ़ील्ड
का गायब होना यह साबित नहीं करता है कि फ़ील्ड आपकी पूरी API में ऐच्छिक
है, लेकिन यह साबित करता है कि स्कीमा ईमानदारी से वादा नहीं कर सकता
कि यह हमेशा वहाँ होगा, इसलिए यह ऐच्छिक बन जाता है। यह वह नियम है
जो पृष्ठ पर FAQ सीधे घोषित करता है, क्योंकि यह वह विवरण है जो परिणाम
पढ़ने वाले किसी व्यक्ति को सबसे अधिक चौंका सकता है।
प्रारूप पहचान
एक स्ट्रिंग प्रारूप जैसे तिथि या ईमेल पता केवल तभी दावा किया जाता है जब उस स्थिति में हर स्ट्रिंग हर रिकॉर्ड में उसी पैटर्न से मेल खाती है। यह वह है जो एक किस्मत के मान को एक वास्तविक मुक्त पाठ फ़ील्ड को एक सख्त तिथि प्रारूप में बदलने से रोकता है, जो फिर वास्तविक, मान्य डेटा को अस्वीकार कर देगा जैसे ही वह ऐसा मान देखेगा जो वास्तव में तिथि नहीं थी।
यह क्या नहीं जान सकता
जनरेटर के पास केवल वे रिकॉर्ड्स हैं जो आपने पेस्ट किए थे। यह उन
रिकॉर्ड्स को नहीं देख सकता जो आपने पेस्ट नहीं किए, इसलिए एक फ़ील्ड
जो हमेशा आपके नमूने में एक सकारात्मक संख्या थी, जब तक आप खुद नहीं
जोड़ते, minimum के साथ वापस नहीं आएगी, और enum-जैसी फ़ील्ड enum
कीवर्ड नहीं बनेगी जब तक आप इसे नहीं जोड़ते। आउटपुट को उस आकार के
रूप में मानें जो आपका नमूना साबित करता है, और जहाँ आप जानते हैं कि
वास्तविक डेटा ढीला है वहाँ इसे मैन्युअल रूप से चौड़ा करें।
परिणाम की जांच
उत्पन्न स्कीमा और एक दस्तावेज़ को JSON Schema मान्यकर्ता में पेस्ट करें यह देखने के लिए कि क्या यह वास्तव में उस प्रकार के दस्तावेज़ों को स्वीकार करता है जिनकी आप अपेक्षा करते हैं।