मुफ़्त JSON Schema जनरेटर

अपने JSON डेटा से स्वचालित रूप से JSON Schema बनाएं। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

अपडेट किया गया

Share:
गाइड पढ़ें: How to Generate a JSON Schema from a Sample Payload
Home/Developer Tools/JSON Schema Generator

JSON Schema Generator

Generate JSON Schema with format detection, constraints, and support for multiple draft versions.

Generation Options
Show

JSON Input

Generated Schema
12 props, depth 2

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "minLength": 1,
      "maxLength": 255,
      "description": "Id"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Name"
    },
    "email": {
      "type": "string",
      "format": "email",
      "minLength": 1,
      "maxLength": 255,
      "description": "Email"
    },
    "age": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000,
      "description": "Age"
    },
    "isActive": {
      "type": "boolean",
      "description": "Is active"
    },
    "website": {
      "type": "string",
      "format": "uri",
      "minLength": 1,
      "maxLength": 255,
      "description": "Website"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "minLength": 1,
      "maxLength": 255,
      "description": "Created at"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "hostname",
        "minLength": 1,
        "maxLength": 255,
        "description": "Item0"
      },
      "minItems": 1,
      "maxItems": 100,
      "uniqueItems": true,
      "description": "Tags"
    },
    "address": {
      "type": "object",
      "properties": {
        "street": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "Street"
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "description": "City"
        },
        "zipCode": {
          "type": "string",
          "format": "hostname",
          "minLength": 1,
          "maxLength": 255,
          "description": "Zip code"
        }
      },
      "additionalProperties": false,
      "required": [
        "street",
        "city",
        "zipCode"
      ],
      "description": "Address"
    }
  },
  "additionalProperties": false,
  "required": [
    "id",
    "name",
    "email",
    "age",
    "isActive",
    "website",
    "createdAt",
    "tags",
    "address"
  ]
}

अक्सर पूछे जाने वाले प्रश्न

JSON Schema Generator क्या है?

JSON Schema Generator एक मुफ़्त ऑनलाइन टूल है जो API के सत्यापन और दस्तावेज़ीकरण के लिए नमूना JSON डेटा से स्वचालित रूप से JSON Schema परिभाषाएँ बनाता है।

क्या JSON Schema Generator मुफ़्त है?

हाँ, यह पूरी तरह मुफ़्त है और इसके लिए किसी पंजीकरण की आवश्यकता नहीं है। पूरी स्कीमा जनरेशन आपके ब्राउज़र में क्लाइंट-साइड पर होती है।

क्या यह मेरा JSON डेटा संग्रहीत करता है?

नहीं, सारा प्रोसेसिंग आपके ब्राउज़र में स्थानीय रूप से होता है। आपका JSON डेटा कभी किसी सर्वर पर नहीं भेजा जाता।

क्या JSON Schema Generator मोबाइल उपकरणों पर काम करता है?

हाँ, JSON Schema Generator पूरी तरह रिस्पॉन्सिव है और स्मार्टफ़ोन व टैबलेट पर काम करता है। आप इसे आधुनिक वेब ब्राउज़र वाले किसी भी डिवाइस पर इस्तेमाल कर सकते हैं, किसी ऐप को डाउनलोड करने की ज़रूरत नहीं।

क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?

किसी खाते या पंजीकरण की आवश्यकता नहीं है। बस अपने ब्राउज़र में JSON Schema Generator खोलें और तुरंत इस्तेमाल शुरू करें। कोई साइन-अप बाधा या उपयोग प्रतिबंध नहीं है।

यह किन प्रोग्रामिंग भाषाओं या प्रारूपों का समर्थन करता है?

JSON Schema Generator कई लोकप्रिय प्रारूपों और भाषाओं का समर्थन करता है। समर्थित विकल्पों की पूरी सूची के लिए टूल का इंटरफ़ेस देखें।

मैं JSON Schema Generator का उपयोग कैसे करूँ?

बस दिए गए फ़ील्ड में अपना इनपुट दर्ज करें, अपनी पसंद के अनुसार सेटिंग्स समायोजित करें, और टूल इसे तुरंत प्रोसेस कर देगा। फिर आप परिणाम को क्लिपबोर्ड पर कॉपी कर सकते हैं या डाउनलोड कर सकते हैं।

कौन-कौन से ब्राउज़र समर्थित हैं?

JSON Schema Generator सभी आधुनिक ब्राउज़रों में काम करता है, जिनमें Chrome, Firefox, Safari, Edge और Opera शामिल हैं। सर्वोत्तम अनुभव के लिए अपने पसंदीदा ब्राउज़र के नवीनतम संस्करण का उपयोग करें।

JSON और JSON Schema में क्या फ़र्क है?

JSON खुद डेटा है — असली values वाला वास्तविक object, जैसे कोई user record या API response। JSON Schema एक अलग दस्तावेज़ है जो उस डेटा के आकार को बताता है: कौन-से फ़ील्ड मौजूद हैं, हर एक का type क्या है (string, integer, boolean, array, object), कौन-से required हैं, और किन values की अनुमति है। JSON को एक भरे हुए फ़ॉर्म की तरह और JSON Schema को खाली टेम्पलेट और उसके नियमों की तरह सोचिए। Validators किसी भी JSON payload को आपके कोड द्वारा भरोसा किए जाने से पहले जाँचने के लिए schema पढ़ते हैं, और इसी तरह API गलत बने हुए requests को जल्दी पकड़ लेते हैं। आप JSON तो हाथ से लगातार लिखते हैं, लेकिन nested डेटा के लिए मिलती-जुलती schema लिखना थकाऊ काम है। यह टूल इसे उलट देता है: एक सैंपल JSON object पेस्ट कीजिए और यह आपके लिए एक पूर्ण schema का अनुमान लगा देता है, जिसे आप बाद में निखार सकते हैं।

मुझे कौन-सा JSON Schema draft version चुनना चाहिए?

यह जनरेटर चार drafts को टारगेट करता है, और सही विकल्प आपके validator पर निर्भर करता है। Draft-07 नए प्रोजेक्ट्स के लिए अनुशंसित डिफ़ॉल्ट है — यह Ajv जैसी लाइब्रेरीज़ में सबसे ज़्यादा सपोर्टेड है, और अधिकतर ट्यूटोरियल इसी को मानकर चलते हैं। Draft-04 तभी चुनें जब आप ऐसी पुरानी या legacy tooling के साथ काम कर रहे हों जिसे अपडेट नहीं किया गया है। Draft-2019-09 ने $defs और recursive references पेश किए, जबकि Draft-2020-12 नवीनतम है और इसमें अपडेटेड array keywords व $dynamicRef इस्तेमाल होते हैं; इन्हें तब चुनें जब आपका स्टैक इन्हें स्पष्ट रूप से सपोर्ट करता हो या आपको इनकी नई सुविधाएँ चाहिए हों। यहाँ version बदलने पर output के ऊपर मौजूद $schema URL अपडेट हो जाता है, ताकि आपका validator सही नियमों का सेट लोड करे। अगर आप निश्चित नहीं हैं, तो version selector में Draft-07 से शुरुआत कीजिए और बाद में ज़रूरत पड़ने पर बदल लीजिए।

जनरेट की गई schema में additionalProperties: false क्यों शामिल होता है?

डिफ़ॉल्ट रूप से यह टूल हर object में additionalProperties: false जोड़ देता है, जो किसी validator को यह बताता है कि ऐसा कोई भी payload अस्वीकार कर दे जिसमें आपके सैंपल में न रही हों ऐसी keys मौजूद हों। यह एक जान-बूझकर सख़्त शुरुआती बिंदु है: यह contract को ठीक उन्हीं फ़ील्ड्स तक सीमित रखता है जो आपने दिए थे, ताकि अप्रत्याशित या गलत लिखी गई keys चुपचाप निकल जाने के बजाय validation में असफल हो जाएँ। यह उन internal APIs के लिए आदर्श है जहाँ आपको एक टाइट और अनुमानित (predictable) आकार चाहिए। हालाँकि, यह public या समय के साथ बदलते APIs के लिए बहुत सख़्त हो सकता है जो कभी-कभी वैकल्पिक फ़ील्ड्स जोड़ सकते हैं — ऐसे मामलों में एक नया फ़ील्ड सख़्त schema इस्तेमाल करने वाले clients को तोड़ सकता है। समाधान सरल है: उस लाइन को हटा दें या इसे true पर सेट कर दें ताकि अतिरिक्त properties की अनुमति मिल सके। यहाँ अपनी schema जनरेट कीजिए, फिर जहाँ आपका API वास्तव में विस्तार की अनुमति देता है, वहाँ additionalProperties को ढीला कर दीजिए।

टूल यह कैसे तय करता है कि कौन-से फ़ील्ड required हैं?

जनरेटर आपके सैंपल की हर non-null key को schema की required array में सूचीबद्ध कर देता है, यह मानकर कि आपके उदाहरण में मौजूद फ़ील्ड असली डेटा में भी मौजूद रहने की उम्मीद रखता है। यह integer को number से भी अलग करता है ताकि पूर्ण संख्याओं को सटीक रूप से टाइप किया जा सके, और format detection चालू होने पर यह उन strings को टैग करता है जो email, uri, date-time, uuid, ipv4, और ipv6 जैसे जाने-पहचाने पैटर्न से मेल खाती हैं। सबसे ज़रूरी चेतावनी यह है कि required फ़ील्ड्स एक ही सैंपल को दर्शाते हैं। अगर कोई key किसी एक payload में गायब या null हो लेकिन व्यवहार में वैकल्पिक हो, तो टूल इसे एक उदाहरण से नहीं जान सकता — इसलिए भेजने से पहले required list की समीक्षा कीजिए और जो फ़ील्ड्स वास्तव में वैकल्पिक हैं उन्हें हटा दीजिए। output को एक मज़बूत पहला ड्राफ्ट मानिए। इस टूल से सबसे सटीक required-field अनुमान पाने के लिए अपना सबसे संपूर्ण और प्रतिनिधि (representative) सैंपल पेस्ट कीजिए।

क्या schema में मौजूद minLength और minimum constraints ज्यों-के-त्यों इस्तेमाल करने के लिए सुरक्षित हैं?

समीक्षा किए बिना नहीं। जब आप constraints चालू करते हैं, तो टूल आपके सैंपल से अनुमानित सीमाएँ (bounds) तय करता है — strings के लिए minLength और maxLength, संख्याओं के लिए minimum और maximum, और arrays के लिए minItems, maxItems, तथा uniqueItems (जब सैंपल के सभी elements अलग-अलग हों)। ये सब एक उदाहरण से गणना किए जाते हैं, इसलिए ये यह बताते हैं कि आपके सैंपल में क्या था, न कि असली business rules क्या हैं। उदाहरण के लिए, अगर आपके सैंपल का username आठ अक्षरों का था, तो maxLength को आठ पर सेट किया जा सकता है, भले ही ज़्यादा लंबे नाम भी मान्य हों, जिससे असली डेटा गलत तरीके से अस्वीकार हो सकता है। हर जनरेट किए गए constraint को एक उपयुक्त डिफ़ॉल्ट मानिए जिसे सख़्त या ढीला किया जा सकता है, इसे कभी अंतिम नियम न मानें। Property count और nesting depth दिखाने वाला stats badge यह पुष्टि करने में मदद करता है कि structure अपेक्षाओं से मेल खाता है। यहाँ schema जनरेट कीजिए, फिर इसे तैनात (deploy) करने से पहले अपने असली डेटा की सीमाओं के हिसाब से bounds को समायोजित कीजिए।

संबंधित टूल

मुफ़्त JSON से टाइप जनरेटर

JSON को TypeScript इंटरफ़ेस, Go structs या Rust टाइप में बदलें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

Protobuf से JSON Schema

proto3 परिभाषाओं को JSON Schema, TypeScript इंटरफ़ेस और नमूना JSON में बदलें। messages, enums, नेस्टेड टाइप, oneof, map और repeated का समर्थन करता है।

OpenAPI स्पेक व्यूअर

एंडपॉइंट ब्राउज़िंग, स्कीमा निरीक्षण और cURL जनरेशन के साथ OpenAPI/Swagger स्पेक्स को पार्स और एक्सप्लोर करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

मुफ़्त API टेस्टर ऑनलाइन

GET, POST, PUT, DELETE अनुरोधों के साथ REST API का परीक्षण करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।

JSON Schema Generator के बारे में

JSON Schema Generator, JSON डेटा के एक सैंपल को एक पूर्ण JSON Schema परिभाषा में बदल देता है। किसी वास्तविक API response, कॉन्फ़िग फ़ाइल, या किसी भी JSON ऑब्जेक्ट को पेस्ट कीजिए, और यह टूल उसके types, structure, और constraints को खुद पहचान लेता है — फिर एक तैयार schema दिखाता है जिसे आप कॉपी या डाउनलोड कर सकते हैं। यह बैकएंड और API डेवलपर्स, इंटीग्रेशन इंजीनियरों, और उन सभी के लिए बनाया गया है जिन्हें अपने डेटा के लिए एक contract चाहिए लेकिन जो nested schema को हाथ से नहीं लिखना चाहते।

JSON Schema, JSON के आकार को बताने की मानक शब्दावली है: कौन-से फ़ील्ड मौजूद हैं, हर एक का type क्या है, कौन-से required हैं, और किन values की अनुमति है। किसी भी flat object से आगे बढ़ते ही इसे हाथ से लिखना थकाऊ और गलतियों से भरा काम बन जाता है। यह जनरेटर पहला 90 प्रतिशत काम अपने-आप कर देता है, ताकि आप बाकी बचे 10 प्रतिशत को निखार सकें।

सब कुछ आपके ब्राउज़र में ही चलता है। आप जो JSON पेस्ट करते हैं वह आपकी अपनी डिवाइस पर ही पार्स और विश्लेषित होता है — वह कभी किसी सर्वर पर अपलोड नहीं होता। यानी आप बेझिझक एक प्रोडक्शन payload, कोई internal API सैंपल, या placeholder secrets वाला कोई कॉन्फ़िग डाल सकते हैं, बिना उसके आपकी मशीन से बाहर गए। यहाँ कोई sign-up नहीं, कोई rate limit नहीं, और इंस्टॉल करने के लिए कुछ भी नहीं है।

यह आपके JSON से क्या-क्या जनरेट करता है

जनरेटर आपके डेटा में recursively चलता है और एक typed schema बनाता है जो उसकी संरचना को दर्शाता है:

  • Type inferencestring, boolean, null, array, और object के बीच फ़र्क करता है, और integer को number से अलग करता है ताकि पूर्ण संख्याओं (whole numbers) को सटीक रूप से टाइप किया जा सके।
  • Nested objects और arrays — हर स्तर में जाकर, हर object के लिए एक properties ब्लॉक और arrays के लिए पाए गए elements के आधार पर एक items schema तैयार करता है।
  • Required fields — non-null keys को required के अंतर्गत सूचीबद्ध करता है, क्योंकि आपके सैंपल में उनकी मौजूदगी यह दर्शाती है कि वे अपेक्षित (expected) हैं।
  • Title और description — एक वैकल्पिक schema title और description जोड़ें, या टूल को फ़ील्ड नामों से हर प्रॉपर्टी के लिए description खुद जनरेट करने दें (जैसे createdAt, "Created at" बन जाता है)।

डिफ़ॉल्ट रूप से यह additionalProperties: false भी सेट करता है, जो schema को ठीक आपके सैंपल की keys तक सीमित कर देता है — एक सख़्त शुरुआती बिंदु, जिसे आप बाद में ढीला कर सकते हैं अगर आपका API अतिरिक्त फ़ील्ड्स की अनुमति देता है।

Format detection और constraints

केवल raw types से आगे बढ़कर, जनरेटर सामान्य string formats को पहचानता है और validation संकेत (hints) जोड़ता है। Format detection चालू कीजिए और यह उन strings को टैग कर देगा जो जाने-पहचाने पैटर्न से मेल खाते हैं: email, uri, date-time, date, time, uuid, ipv4, ipv6, और hostname। इस तरह john@example.com जैसी वैल्यू को "format": "email" के साथ एक string के रूप में टाइप किया जाता है, और एक UUID को अपने-आप पहचान लिया जाता है।

Constraints चालू कीजिए और टूल ऐसी सीमाएँ (bounds) तय करता है जिन्हें आप बाद में और सख़्त कर सकते हैं: strings के लिए minLength/maxLength, संख्याओं के लिए minimum/maximum, और arrays के लिए minItems/maxItems के साथ uniqueItems (जब सैंपल के सभी items अलग-अलग हों)। ये सब आपके उदाहरण से अनुमानित (inferred) होते हैं, इसलिए इन्हें अंतिम नियम नहीं बल्कि उपयुक्त डिफ़ॉल्ट मानिए।

Draft version चुनना

JSON Schema कई specification drafts के ज़रिए विकसित हुआ है, और अलग-अलग validators अलग-अलग drafts को सपोर्ट करते हैं। जनरेटर आपको चार में से चुनने देता है:

  • Draft-04 — सबसे पुराना, फिर भी legacy tooling में व्यापक रूप से इस्तेमाल होता है।
  • Draft-07 — सबसे ज़्यादा इस्तेमाल होने वाला और नए प्रोजेक्ट्स के लिए अनुशंसित (recommended) डिफ़ॉल्ट।
  • Draft-2019-09 — इसने $defs और recursive references पेश किए।
  • Draft-2020-12 — नवीनतम, जिसमें $dynamicRef और अपडेटेड array keywords हैं।

Version बदलने पर output के ऊपर मौजूद $schema URL अपडेट हो जाता है, ताकि आपका validator सही नियम लोड करे। एक लाइव stats badge कुल property count और nesting depth दिखाता है — एक झलक में यह जाँचने का तरीका कि किसी बड़े payload ने वही structure जनरेट किया जिसकी आपको उम्मीद थी।

एक जनरेट किया गया schema एक मज़बूत शुरुआती ड्राफ्ट है, अंतिम सत्य नहीं: types और required fields केवल एक सैंपल को दर्शाते हैं, इसलिए इसे API contract के रूप में इस्तेमाल करने से पहले optionality की समीक्षा कीजिए और अपने असली डेटा के हिसाब से constraints को सख़्त कीजिए। गड़बड़ input को साफ़ करने के लिए बिल्ट-इन Format बटन का इस्तेमाल कीजिए, फिर परिणाम को .json फ़ाइल के रूप में कॉपी या डाउनलोड कीजिए, जो आपकी validation लेयर या OpenAPI definition में सीधे इस्तेमाल के लिए तैयार होगी।