को छोड़कर बहु-विशिष्ट गुणों का एक सेट बनाने के लिए मेरे पास एक विरासत API है जो मैं JSON स्कीमा में परिभाषित करने की कोशिश कर रहा हूं और ऑब्जेक्ट में एक अजीब संरचना है जहां 4 गुणों का एक सेट है, उनमें से कोई भी आवश्यक है, और उनमें से 3 पारस्परिक रूप से अनन्य हैं। इसके बाद 30 से अधिक साझा वैकल्पिक गुण भी हैं, मैं उन्हें ...
के रूप में नोट कर दूंगा।किसी भी
जैसे,
{ "foo": "bar", "baz": 1234, ... } // OK
{ "foo": "bar", "buzz": 1234, ... } // OK
{ "foo": "bar", "fizz": 1234, ... } // OK
{ "foo": 1234, ... } // OK
{ "baz": 1234, ... } // OK
{ ... } // NOT OK
{ "baz": 1234, "buzz": 1234, ... } // NOT OK
मैं एक oneOf
कर सकता है लेकिन यह है कि foo
अन्य लोगों के साथ उपस्थित रहने की अनुमति नहीं है, anyOf
baz
, buzz
, और fizz
के लिए एक दूसरे के साथ उपस्थित होने का जो नहीं है की अनुमति देता है मुमकिन।
{
"type": "object",
"properties": {
"foo": {"type": "string"},
"baz": {"type": "number"},
"buzz": {"type": "number"},
"fizz": {"type": "number"}
},
"anyOf": [
{"required": ["foo"]},
{"required": [{"oneOf": [
{"required": ["baz"]},
{"required": ["buzz"]},
{"required": ["fizz"]}
]}
]}
]
}
और
{
"type": "object",
"properties": {
"foo": {"type": "string"},
"baz": {"type": "number"},
"buzz": {"type": "number"},
"fizz": {"type": "number"}
},
"anyOf": [
{"required": ["foo"]},
{"oneOf": [
{"required": ["baz"]},
{"required": ["buzz"]},
{"required": ["fizz"]}
]
}
]
}
लेकिन वह काम नहीं करता और मैं बस json स्कीमा के बारे में पर्याप्त जानकारी नहीं है अभी तक यह संभव है, तो पता करने के लिए:
मैं की तरह कुछ निम्नलिखित को परिभाषित करने की कोशिश की ।
मुझे पूरा यकीन है कि यह मुझे सिर खरोंच और क्रोध के अनगिनत घंटे बचाता है। दुबई होटल की छत पर आपके मिसस के साथ आप $ 5000 डिनर के लायक हैं। आपका बहुत बहुत धन्यवाद! – dimitarvp