मुख्य सामग्री पर जाएं
CuteJSON
↑↓ नेविगेट करें Enter चुनें Esc बंद करें

JSON को JSON Schema के विरुद्ध कैसे मान्य करें

प्रकाशित 2 मिनट का पाठ Akash Kinkar Pandey द्वारा

एक स्कीमा केवल तभी उपयोगी है जब आप वास्तव में किसी दस्तावेज़ को उसके विरुद्ध जांच सकें और इस बारे में स्पष्ट उत्तर प्राप्त कर सकें कि क्या विफल हुआ और कहाँ। यह मान्यकर्ता JSON Schema के उस उपसमूह को कवर करता है जो इस साइट का जनरेटर लिखता है, इसलिए वहाँ उत्पन्न स्कीमा की गारंटी है कि इस पृष्ठ पर लागू किया जा सकता है।

JSON Schema मान्यकर्ता का उपयोग करना

बाईं ओर एक स्कीमा पेस्ट करें और दाईं ओर जांचने के लिए दस्तावेज़, फिर मान्य करें दबाएं। नमूना लोड करने से दोनों फलक एक साथ भर जाते हैं, इसलिए आप केवल दस्तावेज़ संपादित कर सकते हैं और तुरंत देख सकते हैं कि स्कीमा क्या अस्वीकार करता है।

दिए गए स्कीमा

{
  "type": "object",
  "properties": {
    "age": {"type": "integer", "minimum": 0},
    "name": {"type": "string", "minLength": 2}
  },
  "required": ["age", "name"]
}

और दस्तावेज़ {"age": -5, "name": "A"}, मान्यता एक पास में दो समस्याओं की रिपोर्ट करती है: minimum /age पर विफल हुआ क्योंकि -5, 0 से नीचे है, और minLength /name पर विफल हुआ क्योंकि "A" एक अक्षर है। हर समस्या की रिपोर्ट की जाती है, न कि केवल पहली, और प्रत्येक के साथ उस कीवर्ड का सटीक नाम है जिसने इसे अस्वीकार किया और मान के लिए एक JSON Pointer है, इसलिए समस्या एक पथ है जिस पर आप चल सकते हैं बजाय एक वाक्य के जिसे आपको डीकोड करना होगा।

क्या समर्थित है

Type, enum और const; properties, patternProperties, additionalProperties और required कीवर्ड; स्ट्रिंग्स पर लंबाई, पैटर्न और प्रारूप; संख्याओं पर सीमा और गुणक; एरे पर items और uniqueItems; allOf, anyOf, oneOf और not संयोजक; if-then-else; और $defs या definitions के माध्यम से स्थानीय संदर्भ। एक कीवर्ड जो यह मान्यकर्ता लागू नहीं करता है उसे एक एनोटेशन के रूप में माना जाता है और अनदेखा किया जाता है, जो ठीक वही है जो JSON Schema विनिर्देश एक मान्यकर्ता को अपरिचित कीवर्ड के साथ करने की अनुमति देता है।

पूरी जांच को क्या रोकता है

एक $ref जो स्कीमा के अंदर कुछ भी नाम नहीं देता है, या एक जो पूरी तरह से बाहर की ओर इशारा करता है, पूरी मान्यता को रोक देता है और ऐसा कहता है। एक ऐसे स्कीमा के लिए पास या विफल परिणाम की रिपोर्ट करना जिसे पूरी तरह से हल नहीं किया जा सकता था, उत्तर के रूप में सजाया गया झूठ होगा, इसलिए उपकरण एक देने से इनकार करता है।

पक्ष बदलें

चूंकि स्कीमा और दस्तावेज़ फलक दृश्य रूप से समान हैं, पक्ष बदलें वर्तमान स्कीमा को दस्तावेज़ फलक में स्थानांतरित करता है और इसके विपरीत, उपयोगी यदि आपने उन्हें गलत बक्सों में पेस्ट किया है या जल्दी से एक स्कीमा को बुनियादी समझदारी के लिए उसके विरुद्ध जांचना चाहते हैं।

सभी लेखों पर लौटें