JSON Schema वैलिडेटर

ब्राउज़र में चलता है JSON और डेटा

जाँचें कि कोई पेलोड JSON Schema के अनुरूप है या नहीं। टाइप, ज़रूरी प्रॉपर्टी, enum, पैटर्न, संख्यात्मक रेंज, ऐरे संबंधी शर्तें, नेस्टेड ऑब्जेक्ट, लोकल definitions पर $ref, allOf/anyOf/oneOf और बहुत कुछ समर्थित है, और हर उल्लंघन पाथ के साथ सूचीबद्ध होता है।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

JSON Schema क्या है?

JSON Schema स्वयं JSON में लिखी एक शब्दावली है जो JSON दस्तावेज़ के अपेक्षित आकार का वर्णन करती है: कौन-सी प्रॉपर्टी हैं, उनके टाइप, कौन-सी आवश्यक हैं, और फ़ॉर्मेट, पैटर्न व रेंज जैसी शर्तें। स्कीमा के विरुद्ध पेलोड की जाँच कॉन्ट्रैक्ट के बहाव को यूज़र तक पहुँचने से पहले पकड़ लेती है।

गाइड पढ़ें: JSON क्या है?

JSON Schema वैलिडेटर कैसे इस्तेमाल करें

  1. पहले एडिटर में JSON डॉक्यूमेंट और दूसरे में JSON Schema पेस्ट करें।
  2. Validate पर क्लिक करें।
  3. उल्लंघन तालिका देखें; हर पंक्ति बताती है कि कौन-सी वैल्यू क्यों विफल हुई।

JSON Schema वैलिडेटर की खूबियाँ

  • draft-07, 2019-09 और 2020-12 के मुख्य कीवर्ड के विरुद्ध वैलिडेट करता है
  • नेस्टेड ऑब्जेक्ट, ऐरे, टपल, enum, पैटर्न, फ़ॉर्मेट और संख्यात्मक सीमाएँ समर्थित
  • allOf / anyOf / oneOf / not, if-then-else और लोकल $ref संभालता है
  • हर उल्लंघन को JSON पाथ, कीवर्ड, संदेश और स्कीमा की जगह के साथ सूचीबद्ध करता है
  • स्कीमा को खुद लिंट करता है और अज्ञात टाइप या अमान्य रेगुलर एक्सप्रेशन बताता है
  • उल्लंघनों को CSV के रूप में एक्सपोर्ट करता है

JSON Schema वैलिडेटर का उदाहरण

यूज़र ऑब्जेक्ट को वैलिडेट करना

इनपुट:

Document: {"email":"layla@example","age":17}
Schema: {"type":"object","required":["id"],"properties":{"email":{"format":"email"},"age":{"minimum":18}}}

आउटपुट:

$   required   Missing required property "id".
$.email   format   String is not a valid email.
$.age   minimum   Value must be ≥ 18.
हर उल्लंघन डॉक्यूमेंट की एक वैल्यू ("पाथ") को उस स्कीमा कीवर्ड ("स्कीमा लोकेशन") से जोड़ता है जिस पर वह विफल हुई।

JSON डॉक्यूमेंट

भाग 1:{
  "email": भाग 2:"layla@example",
  "age": भाग 3:17
}

JSON Schema

{
  "type": "object",
  भाग 1:"required": ["id"],
  "properties": {
    "email": {
      भाग 2:"format": "email"
    },
    "age": {
      भाग 3:"minimum": 18
    }
  }
}
  1. 1required: "id" मौजूद नहींMissing required property "id".$ → #/requiredफ़ेल
  2. 2format: मान्य email नहींString is not a valid email.$.email → #/properties/email/formatफ़ेल
  3. 3minimum: 17 न्यूनतम 18 से कम हैValue must be ≥ 18.$.age → #/properties/age/minimumफ़ेल

ऊपर वाला उदाहरण। हर मैसेज के नीचे: पाथ → स्कीमा लोकेशन, जैसा उल्लंघन तालिका में है। ग़ायब प्रॉपर्टी उस ऑब्जेक्ट पर बताई जाती है जिसमें उसे होना चाहिए, यहाँ $।

JSON Schema वैलिडेटर के बारे में अक्सर पूछे जाने वाले सवाल

JSON Schema के कौन-से ड्राफ़्ट समर्थित हैं?

draft-07, 2019-09 और 2020-12 के मुख्य कीवर्ड: type, properties, required, enum, const, pattern, format, संख्यात्मक और लंबाई संबंधी शर्तें, items/prefixItems, contains, allOf/anyOf/oneOf/not, if/then/else, dependentRequired और लोकल $ref।

क्या रिमोट $ref संदर्भ हल किए जाते हैं?

सिर्फ़ लोकल संदर्भ (#/definitions/… और #/$defs/…) हल किए जाते हैं। रिमोट URL लोड नहीं किए जाते, इसलिए बाहरी स्कीमा पहले इनलाइन कर लें।

कौन-से स्ट्रिंग फ़ॉर्मेट जाँचे जाते हैं?

email, date-time, date, time, uuid, uri, hostname, ipv4, ipv6, regex और json-pointer। अज्ञात फ़ॉर्मेट अनदेखे कर दिए जाते हैं, जैसा विनिर्देश सुझाता है।

उल्लंघन कैसे बताए जाते हैं?

हर उल्लंघन में गड़बड़ वैल्यू का JSON पाथ, विफल हुआ स्कीमा कीवर्ड, आसान भाषा में संदेश और स्कीमा के भीतर उसकी जगह बताई जाती है।

तकनीकी नोट्स

यह वैलिडेटर बिना किसी बाहरी डिपेंडेंसी के बनाया गया है और कीवर्ड को रिकर्सिव रूप से जाँचते हुए इंस्टेंस पाथ तथा स्कीमा पाथ दोनों का हिसाब रखता है। $ref के साथ मौजूद सहोदर कीवर्ड भी जाँचे जाते हैं (2019-09+ वाला व्यवहार) और OpenAPI का nullable एक्सटेंशन भी माना जाता है।

संदर्भ

  • JSON Schema SpecificationJSON SchemaJSON दस्तावेज़ की संरचना का वर्णन और वैलिडेशन करने की शब्दावली (टाइप, आवश्यक प्रॉपर्टी, फ़ॉर्मेट)।
  • RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatIETF · 2017JSON का व्याकरण: ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, तीन लिटरल और इंटरचेंज एन्कोडिंग के रूप में UTF-8।