JSON और स्कीमा

JSON Schema enum: स्वीकार्य मान और उदाहरण

enum कीवर्ड किसी मान को तभी स्वीकार करता है जब वह घोषित सूची के किसी आइटम से गहराई तक बराबर हो। आइटम स्ट्रिंग, संख्या, बूलियन, null, ऐरे या ऑब्जेक्ट हो सकते हैं।

प्रकाशित

JSON Schema enum का उदाहरण

स्कीमा:

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": ["active", "pending", "disabled"]
    }
  },
  "required": ["status"]
}

मान्य

{ "status": "active" }

अमान्य

{ "status": "deleted" }

"deleted" enum सूची में नहीं है, इसलिए सत्यापन विफल होता है।

JSON Schema Validator में यह enum जाँचें →

enum कीवर्ड क्या करता है

जब इंस्टेंस सूची के किसी JSON मान के बराबर हो, तब सत्यापन सफल होता है। तुलना अक्षरों के केस को ध्यान में रखती है और JSON प्रकार सुरक्षित रखती है।

{ "type": "string", "enum": ["active", "pending", "disabled"] }

स्ट्रिंग, संख्या, बूलियन और null

Enum मान JSON मान हैं, लेबल नहीं। संख्या 1, स्ट्रिंग "1", बूलियन true और null चार अलग विकल्प हैं।

{ "enum": [1, "1", true, null] }

JSON Schema enum में null कैसे स्वीकार करें

जब स्कीमा type और enum दोनों घोषित करता है, तब मान को दोनों पूरा करना होता है। यहाँ null स्वीकार करने के लिए अनुमत प्रकारों में "null" और enum में JSON मान null शामिल करें। केवल एक बाधा में जोड़ना पर्याप्त नहीं है।

{
  "type": ["string", "null"],
  "enum": ["active", "pending", null]
}

ऑब्जेक्ट प्रॉपर्टी के भीतर enum

{
  "type": "object",
  "properties": { "status": { "enum": ["active", "pending"] } },
  "required": ["status"]
}

स्वीकार्य मानों के साथ अतिरिक्त कुंजियाँ नियंत्रित करने के लिए कॉन्फ़िगर करें: additionalProperties.

ऐरे के भीतर JSON Schema enum

जब ऐरे का हर एलिमेंट निश्चित सूची का होना चाहिए, तब items के भीतर enum रखें। उदाहरण के लिए ["read", "write"] मान्य है, जबकि ["read", "admin"] विफल है क्योंकि "admin" स्वीकार्य आइटम नहीं है।

{
  "type": "array",
  "items": {
    "type": "string",
    "enum": ["read", "write", "delete"]
  }
}

देखें: JSON Schema ऐरे गाइड — ऐरे आइटम और पूरे संग्रह को सीमित करने के और तरीकों के लिए।

enum बनाम const

कीवर्डकब उपयोग करेंउदाहरण
enumकई मान स्वीकार्य होंactive | pending
constकेवल एक मान स्वीकार्य होkind = user

यदि स्वीकार्य मान स्कीमा शाखाओं में बदलते हैं, तो तुलना करें: oneOf, anyOf और allOf — ताकि शाखाओं के संयोजन का तरीका चुन सकें।

अक्षरों के केस और आम गलतियाँ

  • Active और active अलग स्ट्रिंग हैं।
  • enum किसी प्रॉपर्टी को अनिवार्य नहीं बनाता।
  • संख्या और स्ट्रिंग के रूप एक-दूसरे के स्थान पर नहीं रखे जा सकते।
  • जेनरेटर एक नमूने से भविष्य के सभी स्वीकार्य मान नहीं जान सकता।

बनाएँ, सुधारें और सत्यापित करें

प्रतिनिधि नमूनों से संरचनात्मक आधार बनाएँ, स्वीकृत enum सोच-समझकर जोड़ें, फिर स्वीकार और अस्वीकार होने वाले दोनों प्रकार के मान JSON Schema Validator में जाँचें।

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

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

स्वीकार्य JSON मानों के साथ enum जोड़ें। मान तभी सफल है जब वह किसी प्रविष्टि से मेल खाए और स्कीमा की बाकी बाधाएँ भी पूरी करे।

{ "type": "string", "enum": ["active", "pending"] }

क्या JSON Schema enum में संख्या, बूलियन या null हो सकते हैं?

हाँ। enum JSON मान स्वीकार करता है और केवल स्ट्रिंग तक सीमित नहीं है। उदाहरण उन तीन मानों की अनुमति देता है। यदि type भी दिया गया है, तो उसे उनके प्रकार स्वीकार करने चाहिए।

{ "enum": [1, true, null] }

JSON Schema में enum और const का क्या अंतर है?

enum स्वीकार्य मानों की सूची परिभाषित करता है; const ठीक एक मान की अनुमति देता है। कई विकल्पों के लिए enum और एक निश्चित मान के लिए const उपयोग करें।

उदाहरण आज़माएँ

देखे गए status डेटा से आधार स्कीमा बनाएँ

सोच-समझकर enum बाधा जोड़ने से पहले वास्तविक ऑब्जेक्ट रूप से शुरू करें।

{"status":"active","role":"admin"}

अपेक्षित परिणाम: जेनरेटर स्ट्रिंग प्रॉपर्टी का अनुमान लगाता है; न देखे गए स्वीकार्य मान नहीं गढ़ता।

उदाहरण आज़माएँ

enum के बाहर का मान अस्वीकार करें

स्वीकृत स्टेटस सूची के विरुद्ध archived स्टेटस जाँचें।

enum: [active, pending, disabled]
value: archived

अपेक्षित परिणाम: /status पर सत्यापन विफल है क्योंकि archived स्वीकार्य मान नहीं है।

वास्तविक JSON से शुरू करें

आधार स्कीमा बनाएँ

संरचनात्मक स्कीमा का अनुमान लगाएँ, फिर वे enum मान जोड़ें जिन्हें आपका ऐप वास्तव में अनुमति देता है।

JSON to JSON Schema Generator खोलें →