Skip to content
JSON Schema Validator
Tools

JSON Schema Validator

नया

Validate JSON against a JSON Schema (draft-07 / draft-2020-12) with clear error messages.

JSON Data Paste your data here
JSON Schema Draft-07 supported

Runs entirely in your browser. Nothing is uploaded.

JSON Schema क्या है और यह क्यों महत्वपूर्ण है?

JSON (JavaScript Object Notation) वेब APIs, कॉन्फ़िगरेशन फाइलों और डेटा इंटरचेंज की सामान्य भाषा है। लेकिन कच्चे JSON में कोई बिल्ट-इन टाइप सिस्टम नहीं होता — एक फील्ड एक दिन स्ट्रिंग हो सकती है और अगले दिन नंबर, और बेमेल खोजने का एकमात्र तरीका रनटाइम क्रैश या सूक्ष्म डेटा बग है। JSON Schema यह कमी पूरी करता है: यह JSON दस्तावेज़ की अपेक्षित संरचना और प्रतिबंधों का वर्णन करने के लिए एक डिक्लेरेटिव वोकेबुलरी है, जिसे रनटाइम पर वास्तविक डेटा के विरुद्ध वैलिडेट किया जाता है।

टीमें API रिक्वेस्ट पेलोड को प्रोसेस करने से पहले वैलिडेट करने के लिए, स्टार्टअप पर लोड होने वाली कॉन्फ़िगरेशन फाइलों की आकृति लागू करने के लिए, एक ही सत्य स्रोत से दस्तावेज़ीकरण और UI फॉर्म स्वचालित रूप से जनरेट करने के लिए, और माइक्रोसर्विसेज में अनुबंध की संगतता बनाए रखने के लिए JSON Schema का उपयोग करती हैं। OpenAPI — REST API दस्तावेज़ीकरण का मानक — JSON Schema के ऊपर सीधे बना है।

JSON Schema Draft संस्करण: Draft-07, Draft 2019-09 और Draft 2020-12

JSON Schema कई स्पेसिफिकेशन ड्राफ्ट से गुजरा है। Draft-07, 2018 में रिलीज़ हुआ, सभी प्रमुख वैलिडेटर लाइब्रेरी में सबसे व्यापक रूप से समर्थित रहता है और OpenAPI 3.0 द्वारा उपयोग किया जाने वाला डायलेक्ट है। इसने शक्तिशाली if/then/else कंडीशनल वैलिडेशन कीवर्ड, readOnly/writeOnly प्रॉपर्टी एनोटेशन और कंटेंट एनकोडिंग कीवर्ड पेश किए।

Draft 2020-12 वर्तमान स्थिर स्पेसिफिकेशन है और कई महत्वपूर्ण बदलाव लाता है: items कीवर्ड को tuple वैलिडेशन के लिए prefixItems से बदला गया है, डायनामिक रेफरेंस $recursiveRef की बजाय $dynamicRef का उपयोग करते हैं, और नए unevaluatedProperties और unevaluatedItems कीवर्ड अतिरिक्त कंटेंट पर अधिक सटीक नियंत्रण प्रदान करते हैं।

मुख्य JSON Schema Keywords की व्याख्या

type कीवर्ड डेटा टाइप लागू करता है: string, number, integer, boolean, array, object, या null। required उन प्रॉपर्टी को सूचीबद्ध करता है जो किसी ऑब्जेक्ट में होनी चाहिए। properties प्रत्येक प्रॉपर्टी नाम को उसके सब-स्कीमा से मैप करता है। pattern स्ट्रिंग वैल्यू पर रेगुलर एक्सप्रेशन लागू करता है। minimum, maximum, minLength, और maxLength न्यूमेरिक और स्ट्रिंग रेंज को सीमित करते हैं। enum एक वैल्यू को अनुमत वैल्यू के निश्चित सेट तक सीमित करता है; const इसे एकल वैल्यू तक।

कम्पोज़िशन कीवर्ड आपको सरल बिल्डिंग ब्लॉक से जटिल नियम बनाने देते हैं: allOf लॉजिकल AND की तरह काम करता है, anyOf OR की तरह, और oneOf XOR की तरह। not कीवर्ड स्कीमा को उलट देता है। if/then/else कीवर्ड कंडीशनल वैलिडेशन सक्षम करते हैं। साथ मिलकर ये आपको कस्टम इम्पेरेटिव कोड लिखे बिना लगभग कोई भी वैलिडेशन नियम व्यक्त करने देते हैं।

प्रोडक्शन में JSON Schema: API कॉन्ट्रैक्ट और CI पाइपलाइन

प्रोडक्शन सिस्टम में, JSON Schema वैलिडेशन Ajv (JavaScript/Node.js), jsonschema (Python), या Newtonsoft.Json (C#) जैसी लाइब्रेरी का उपयोग करके सर्वर-साइड या CI पाइपलाइन में चलता है। स्कीमा एप्लिकेशन कोड के साथ वर्जन कंट्रोल में कमिट किए जाते हैं ताकि कॉन्ट्रैक्ट बदलाव किसी अन्य बदलाव की तरह रिव्यू और ट्रैक किए जाएं।

यह ब्राउज़र-आधारित टूल कमिट करने से पहले स्कीमा को iteratively डिज़ाइन और डीबग करने के लिए आदर्श है। अपना डेटा पेस्ट करें, स्कीमा लिखें, Validate क्लिक करें, विस्तृत त्रुटि संदेश पढ़ें और परिष्कृत करें — कोई सर्वर नहीं, कोई npm install नहीं, कोई राउंड ट्रिप नहीं। वैलिडेटर प्रत्येक वैलिडेशन रन पर आपका JSON भी pretty-print करता है।

व्यावहारिक उदाहरण: API रिस्पॉन्स वैलिडेट करना

मान लीजिए आपकी API एक यूज़र ऑब्जेक्ट लौटाती है। एक JSON Schema जो इसे वैलिडेट करता है वह एक इंटीजर id, एक नॉन-एम्प्टी स्ट्रिंग name, एक ईमेल पैटर्न मैच करने वाला स्ट्रिंग email, और 'admin', 'editor', और 'viewer' के enum से एक वैकल्पिक स्ट्रिंग role की आवश्यकता हो सकती है। additionalProperties को false सेट करना सुनिश्चित करता है कि आपकी API कभी भी अनदस्तावेज़ीकृत फ़ील्ड चुपचाप न लौटाए।

if/then/else फीचर कंडीशनल नियम सक्षम करता है — उदाहरण के लिए, यदि role 'admin' है तो permissions array आवश्यक है, अन्यथा वर्जित। ये कम्पोज़िशनल नियम एक ही स्कीमा को प्रॉपर्टी परिभाषाओं को दोहराए बिना ऑब्जेक्ट की कई वैध आकृतियों को कवर करने देते हैं।

UtiloKit अन्य JSON Schema Validators से कैसे तुलना करता है

अधिकांश ऑनलाइन JSON Schema वैलिडेटर टूल दो श्रेणियों में आते हैं: विज़ुअल स्कीमा बिल्डर और सर्वर-साइड API वैलिडेटर। jsonschema.net आपको स्कीमा बनाने के लिए पॉइंट-एंड-क्लिक UI से गुजरने के लिए मजबूर करता है — शुरुआती लोगों के लिए उपयोगी लेकिन डेवलपर्स के लिए धीमा।

jsonschemavalidator.net, Microsoft की Newtonsoft.Json लाइब्रेरी पर बना, .NET प्रॉपर्टी पाथ और एरर कोड का उपयोग करके त्रुटियाँ रिपोर्ट करता है जो JavaScript डेवलपर्स को अपरिचित लगती हैं। Stoplight और SwaggerHub जैसे टूल पूर्ण OpenAPI दस्तावेज़ के हिस्से के रूप में स्कीमा को वैलिडेट करते हैं।

UtiloKit का वैलिडेटर उसी Ajv इंजन पर चलता है जो अधिकांश Node.js, Express और Fastify एप्लिकेशन को शक्ति देता है। एरर मैसेज, JSON पॉइंटर पाथ और कीवर्ड व्यवहार ठीक आपके प्रोडक्शन एनवायरनमेंट से मेल खाते हैं — और यह आपके ब्राउज़र में बिना अकाउंट, बिना अपलोड, बिना फाइल साइज़ लिमिट के मुफ्त में चलता है।

Frequently asked questions

JSON Schema क्या है?

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

यह वैलिडेटर JSON Schema का कौन सा draft सपोर्ट करता है?

यह वैलिडेटर JSON Schema Draft-07 के कोर कीवर्ड implement करता है, जो Ajv (JavaScript), jsonschema (Python) और Newtonsoft.Json (C#) सहित सभी प्रमुख वैलिडेटर लाइब्रेरी में सबसे व्यापक रूप से समर्थित संस्करण है। Draft-07 ने if/then/else कंडीशनल वैलिडेशन, readOnly/writeOnly एनोटेशन और कंटेंट एनकोडिंग कीवर्ड पेश किए।

allOf, anyOf और oneOf में क्या अंतर है?

allOf के लिए आवश्यक है कि डेटा प्रत्येक सूचीबद्ध सब-स्कीमा के विरुद्ध वैलिड हो — यह लॉजिकल AND की तरह काम करता है। anyOf के लिए कम से कम एक सब-स्कीमा के विरुद्ध वैलिडिटी आवश्यक है — लॉजिकल OR। oneOf के लिए ठीक एक सब-स्कीमा के विरुद्ध वैलिडिटी आवश्यक है — लॉजिकल XOR।

additionalProperties: false क्या करता है?

यह ऑब्जेक्ट में किसी भी ऐसी प्रॉपर्टी को प्रतिबंधित करता है जो properties कीवर्ड के तहत स्पष्ट रूप से सूचीबद्ध नहीं है। यह एक बंद स्कीमा बनाता है — सख्त API कॉन्ट्रैक्ट के लिए बहुत उपयोगी। यह सबसे सामान्य गलतियों में से एक है: यदि आप स्कीमा अपडेट किए बिना अपने डेटा में एक नई प्रॉपर्टी जोड़ते हैं, तो वैलिडेशन विफल हो जाएगा।

क्या मैं ऑब्जेक्ट के arrays को वैलिडेट कर सकता हूँ?

हाँ। type को 'array' पर सेट करें और एक items सब-स्कीमा प्रदान करें। array में प्रत्येक एलिमेंट को उस सब-स्कीमा के विरुद्ध वैलिडेट किया जाएगा। Draft-07 में tuple वैलिडेशन के लिए, items को स्कीमा के array पर सेट करें। आप minItems, maxItems से array की लंबाई भी सीमित कर सकते हैं।

$ref से सब-स्कीमा को कैसे reference करें?

शीर्ष-स्तरीय $defs ऑब्जेक्ट में पुन: उपयोग योग्य स्कीमा परिभाषित करें, फिर उन्हें '$ref': '#/$defs/SchemaName' से reference करें। यह आपके स्कीमा को DRY और पठनीय रखता है। यह वैलिडेटर केवल लोकल $ref सपोर्ट करता है — बाहरी फाइलों की ओर इशारा करने वाले remote $ref URL नहीं फेच किए जाते।

सबसे सामान्य JSON Schema वैलिडेशन errors क्या हैं?

सबसे सामान्य errors हैं: required properties का अनुपस्थित होना, type mismatches, pattern violations, range violations और additional property errors जब additionalProperties false हो। यह वैलिडेटर प्रत्येक error को विफल डेटा के सटीक JSON pointer path के साथ रिपोर्ट करता है।