JSON Schema वैलिडेटर और जनरेटर
स्कीमा के विरुद्ध JSON जाँचिए, या नमूना डेटा से स्कीमा का अनुमान लगाइए
इस टूल के बारे में
एक ही अनुशासन की दो दिशाएँ: नमूना JSON चिपकाइए और उससे अनुमानित draft-07 स्कीमा पाइए, या डेटा और स्कीमा दोनों चिपकाकर हर उल्लंघन उसके JSON पथ सहित देखिए। जाँच Ajv पर चलती है — वही इंजन जिसका उपयोग अधिकतर Node सेवाएँ करती हैं — इसलिए जो यहाँ पास होता है वही CI में भी पास होगा।
अनुमान उत्पादन को ध्यान में रखकर बना है: ऑब्जेक्ट की कुंजियाँ टाइप की गई प्रॉपर्टी और required प्रविष्टियाँ बनती हैं, सूचियाँ अपने सभी सदस्यों के आकार मिलाती हैं, पूर्णांक दशमलव से अलग पहचाने जाते हैं, और जो कुंजियाँ केवल कुछ ही सदस्यों में हैं वे ठीक ही required से बाहर रह जाती हैं। परिणाम एक शुरुआत है जिसे आप format, परास और पैटर्न से कसते हैं।
API उत्तर और कॉन्फ़िग फ़ाइलें ठीक वही डेटा हैं जिन्हें आप किसी तीसरे पक्ष के सर्वर पर सबसे कम देखना चाहेंगे। अनुमान और जाँच — दोनों पूरी तरह आपके ब्राउज़र में चलते हैं।
अक्सर पूछे जाने वाले प्रश्न
- JSON Schema का कौन-सा ड्राफ़्ट समर्थित है?
- अनुमान draft-07 देता है, जो संपादकों और वैलिडेटरों में सबसे व्यापक रूप से समर्थित ड्राफ़्ट है। जाँच draft-07 और उन पुराने ड्राफ़्ट को स्वीकारती है जिन्हें Ajv ग़ैर-सख़्त मोड में समझता है; 2019-09/2020-12 के कीवर्ड भी अधिकतर चल जाते हैं क्योंकि अनजान कीवर्ड घातक होने के बजाय अनदेखे कर दिए जाते हैं।
- उल्लंघन के पथों में $ का क्या अर्थ है?
- वह दस्तावेज़ की जड़ है, JSONPath शैली में: $.age का अर्थ है शीर्ष स्तर की age प्रॉपर्टी, $.items.2.name का अर्थ तीसरे सूची-तत्व का name। ख़ाली पथ ($) का अर्थ है कि उल्लंघन दस्तावेज़ की जड़ से ही जुड़ा है — ग़लत प्रकार, या कोई अनिवार्य प्रॉपर्टी ग़ायब।
- अनुमानित स्कीमा मेरी अपेक्षा से अधिक सख़्त या ढीली क्यों है?
- वह ठीक उसी नमूने का वर्णन करती है जो आपने दिया: जो फ़ील्ड हर जगह मौजूद हैं वे अनिवार्य बन जाते हैं, और केवल देखे गए प्रकार ही अनुमत होते हैं। अधिक सामान्य स्कीमा के लिए उसे अधिक विविध नमूना दीजिए (प्रतिनिधि ऑब्जेक्ट की सूची), फिर हाथ से समायोजित कीजिए — अनुमान मंशा नहीं जान सकता।
- क्या जाँच format, pattern और अन्य बाधा-कीवर्ड समर्थित करती है?
- संरचनात्मक कीवर्ड (type, required, properties, items, enum, minimum, pattern…) पूरी तरह लागू होते हैं। "email" या "date-time" जैसे format स्ट्रिंग की पुष्टि नहीं होती — यह JSON Schema विशिष्टि का ही प्रतिबिंब है, जहाँ format डिफ़ॉल्ट रूप से केवल टिप्पणी है, और इससे झूठे भरोसे से भी बचाव होता है।