dışında bir çok özel özellik kümesi nasıl yapılır Bir JSON Şeması içinde tanımlamaya çalıştığım eski bir API'm var ve nesnenin 4 özellikli bir kümenin bulunduğu garip bir yapısı var. gerekli ve 3 tanesi birbirini dışlayan. Bundan sonra 30'dan fazla paylaşılan isteğe bağlı özellik vardır, ben onları ...
olarak not edeceğim. Ben oneOf
yapabileceğini ama bu foo
başkalarıyla mevcut olmasına izin vermezBir
{ "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
örn
, anyOf
baz
, buzz
ve fizz
için değil hangi birbirleriyle mevcut olmasını sağlar mümkün.
{
"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"]}
]}
]}
]
}
ve
{
"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"]}
]
}
]
}
Ama bu işe yaramazsa ve ben sadece json şeması hakkında yeterince bilgimiz yok henüz bu mümkün olmadığını bilmek:
aşağıdaki gibi bir şey tanımlamak için çalıştı .
Bu sayede bana saatlerce süren kafa çizme ve öfke kazandırdı. Siz bir dubai otel çatısında hanımefendi ile 5000 dolarlık bir yemeği hak ediyorsunuz. Çok teşekkürler! – dimitarvp