我最近学习了(this、this和this,以及其他资源(如何使用oneOf
关键字来声明JSON有效性,仅当多个元素中的一个元素位于同一嵌套级别时。例如,以下模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"req1": {
"type": "string"
},
"req2": {
"type": "string"
},
"obj": {
"type": "object",
"properties": {
"req1": {
"type": "string"
}
}
}
},
"oneOf": [
{ "required": ["req1"] },
{ "required": ["req2"] }
]
}
确保以下是有效的json:
{ "req1": "foo", "obj": { "req1": "foo" } }
{ "req2": "foo", "obj": { "req1": "foo" } }
以下不是因为同时存在req1
和req2
,而不是req1
和req2
中的一个:
{ "req1": "foo", "req2": "foo", "obj": { "req1": "foo" } }
我没能从这个例子中推断出";所需的";概念到不同嵌套级别的元素。例如,如何强制要求req1
和obj.req1
中的一个
例如,我如何强制要求req1和obj.req1中的一个?
...
"oneOf": [
{
"required": [ "req1" ]
},
{
"required": [ "obj" ],
"properties": {
"obj": {
"type": "object",
"required": [ req1 ]
}
}
}
]