JSON Schema जनरेटर

बाईं ओर JSON पेस्ट करें — स्कीमा दाईं ओर टाइप करते ही दिखती है।

JSON Schema

इसका उपयोग कैसे करें

  1. बाईं ओर नमूना JSON दस्तावेज़ पेस्ट करें — ऑब्जेक्ट, ऐरे या एक मान। स्कीमा टाइप करते ही लाइव बनती है।
  2. स्कीमा संस्करण चुनें (Draft 7 या 2020-12), और स्ट्रिंग-फ़ॉर्मेट पहचान, उदाहरण मान, तथा हर प्रॉपर्टी आवश्यक है या नहीं — इन्हें टॉगल करें।
  3. परिणाम कॉपी करें या schema.json के रूप में डाउनलोड करें। कुछ अपलोड नहीं होता: पूरा दस्तावेज़ आपके ब्राउज़र में पार्स होता है।

उदाहरण

नमूना JSON

{
  "id": 42,
  "name": "Ada Lovelace",
  "email": "ada@example.com",
  "active": true,
  "tags": ["admin", "editor"],
  "profile": { "score": 4.5, "verified": false }
}

JSON Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "active": { "type": "boolean" },
    "tags": { "type": "array", "items": { "type": "string" } },
    "profile": {
      "type": "object",
      "properties": {
        "score": { "type": "number" },
        "verified": { "type": "boolean" }
      },
      "required": ["score", "verified"],
      "additionalProperties": false
    }
  },
  "required": ["id", "name", "email", "active", "tags", "profile"],
  "additionalProperties": false
}

डिफ़ॉल्ट नियमों से बनाया गया: Draft 7, फ़ॉर्मेट चालू, सभी प्रॉपर्टीज़ आवश्यक। ईमेल स्ट्रिंग को फ़ॉर्मेट संकेत मिलता है; integer सटीक रहता है, और नेस्टेड profile अपनी अलग ऑब्जेक्ट स्कीमा बन जाती है।

नियम, सीमाएँ और ज्ञात समस्याएँ

  • टाइप नमूने से अनुमानित होते हैं: object, array, string, integer, number, boolean, null। ऐरे आइटम मिलाए जाते हैं — तत्वों के ऑब्जेक्ट अपनी कुंजियाँ जोड़ते हैं, और कुछ तत्वों में न मौजूद कुंजी आवश्यक नहीं चिह्नित होती।
  • एक ही ऐरे में मिश्रित टाइप anyOf बन जाते हैं; खाली ऐरे type:array देता है बिना items के (नमूने से तत्व का टाइप अज्ञात है)।
  • स्ट्रिंग फ़ॉर्मेट (email, UUID, URI, date, date-time) मान से अनुमानित होते हैं — वे संकेत हैं, हर संभव मान की जाँच नहीं। टॉगल से उन्हें बंद करें।
  • डुप्लीकेट कुंजियाँ अंतिम मान रखती हैं, जैसे JSON.parse करता है। सिर्फ़ सख़्त JSON (RFC 8259): कमेंट, अंतिम कॉमा और सिंगल कोट पंक्ति/कॉलम संदेश के साथ अस्वीकार होते हैं।
  • स्कीमा मानक JSON है, इसलिए उसकी कुंजियाँ और आउटपुट पेज की भाषा से कभी नहीं बदलते। उदाहरण मान नेटिव रूप से बनाए जाते हैं, इसलिए कोई चरम integer (जैसे 12345678901234567890) सिर्फ़ उदाहरण में गोल हो सकता है।
  • सीमाएँ: 10,00,000 कैरेक्टर और 512 नेस्टिंग स्तर। किसी भी सीमा से ऊपर त्रुटि मिलती है, कभी कटा परिणाम नहीं। फ़ाइल अपलोड सिर्फ़ लोकल फ़ाइल पढ़ता है — कुछ अपलोड नहीं होता।

स्कीमा तैयार होने के बाद लोग आमतौर पर यह चाहते हैं।