JSON Schema क्या है?
JSON Schema स्वयं JSON में लिखी एक शब्दावली है जो JSON दस्तावेज़ के अपेक्षित आकार का वर्णन करती है: कौन-सी प्रॉपर्टी हैं, उनके टाइप, कौन-सी आवश्यक हैं, और फ़ॉर्मेट, पैटर्न व रेंज जैसी शर्तें। स्कीमा के विरुद्ध पेलोड की जाँच कॉन्ट्रैक्ट के बहाव को यूज़र तक पहुँचने से पहले पकड़ लेती है।
JSON Schema जनरेटर कैसे इस्तेमाल करें
- एक प्रतिनिधि JSON नमूना पेस्ट करें — बेहतर हो कि ऐरे में कई रिकॉर्ड हों।
- title सेट करें और फ़ॉर्मेट पहचान, required मार्किंग, examples या सख़्त ऑब्जेक्ट के विकल्प चुनें।
- बनी हुई स्कीमा कॉपी करें और description तथा enum हाथ से बेहतर करें।
JSON Schema जनरेटर की खूबियाँ
- एक ऑब्जेक्ट या नमूनों के ऐरे से draft 2020-12 स्कीमा का अनुमान लगाता है
- ऐरे आइटम मिलाता है: साझा प्रॉपर्टी required बनती हैं, मिश्रित टाइप टाइप-ऐरे या anyOf बनते हैं
- email, date-time, date, time, uuid, uri, hostname, ipv4 और ipv6 फ़ॉर्मेट पहचानता है
- वैकल्पिक examples, स्कीमा title और additionalProperties: false
- integer और number में अंतर करता है
- नमूना एडिट करते ही लाइव जनरेट करता है
JSON Schema जनरेटर का उदाहरण
एक रिकॉर्ड से स्कीमा का अनुमान
इनपुट:
{"id":"6f1a2c3e-8b4d-4e5f-9a6b-7c8d9e0f1a2b","email":"omar@example.com","age":34}आउटपुट:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer" }
},
"required": ["id", "email", "age"]
}JSON Schema जनरेटर के बारे में अक्सर पूछे जाने वाले सवाल
"required" प्रॉपर्टी कैसे तय होती हैं?
जब नमूना ऑब्जेक्ट का ऐरे हो, तो कोई प्रॉपर्टी तभी required मानी जाती है जब वह हर आइटम में मौजूद हो। अकेले ऑब्जेक्ट के लिए उसकी सारी प्रॉपर्टी required होती हैं। आप इसे बंद भी कर सकते हैं।
कौन-से फ़ॉर्मेट पहचाने जाते हैं?
email, date-time, date, time, uuid, uri, hostname, ipv4 और ipv6। पहचान अनुमान पर आधारित है — स्कीमा प्रकाशित करने से पहले नतीजा जाँच लें।
मिश्रित टाइप कैसे संभाले जाते हैं?
अगर ऐरे आइटम या प्रॉपर्टी की वैल्यू अलग-अलग टाइप की हों, तो जनरेटर एक टाइप ऐरे (जैसे ["integer", "string"]) या मिलाई गई ऑब्जेक्ट स्कीमा वाला anyOf देता है।
क्या आउटपुट पूरी स्कीमा होती है?
यह एक मज़बूत शुरुआती बिंदु है जिसमें $schema, टाइप, नेस्टेड ऑब्जेक्ट, ऐरे आइटम स्कीमा और required सूचियाँ शामिल हैं। जहाँ आपके कॉन्ट्रैक्ट को ज़रूरत हो वहाँ description, enum और संख्यात्मक सीमाएँ हाथ से जोड़ें।
संदर्भ
- JSON Schema SpecificationJSON दस्तावेज़ की संरचना का वर्णन और वैलिडेशन करने की शब्दावली (टाइप, आवश्यक प्रॉपर्टी, फ़ॉर्मेट)।
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange FormatJSON का व्याकरण: ऑब्जेक्ट, ऐरे, स्ट्रिंग, नंबर, तीन लिटरल और इंटरचेंज एन्कोडिंग के रूप में UTF-8।