如何在JSON模式中使用具有相对引用的dependentRequired



我的应用程序中有下面的JSON模式,我正在使用NewtonSoft JSON schema validation库根据我的模式验证用户JSON。

我需要设置的规则是-

  1. 如果用户在JSON中设置了property2,那么property3也应该存在,subProperty2也应该存在于property3之下
  2. 如果用户没有设置CCD_ 6,则不需要CCD_

我使用dependentRequired,并使用period(.)进行相对参考,但这不适用于NewtonSoft包。我尝试了两种不同的方法,都没有得到预期的结果。

{
"type": "object",
"additionalProperties": false,
"properties": {
"property1": {
...
},
"property2": {
...
},
"property3": {
"type": "object",
"additionalProperties": false,
"properties": {
"subProperty1": {
...
},
"subProperty2": {
...
},
}
}
},
"required": [
"property1"
]
}

//尝试1个

"dependentRequired": {
"property2": [ "property3.subProperty2" ]
},

//尝试2

"dependentRequired": {
"property2": {
"required": [ "property3" ],
"property3": {
"required": [ "subProperty2" ]
}
}
} 

有人能帮我吗?

JSON模式不支持第一次尝试中使用的点表示法。

第二次尝试是正确的想法,但由于您使用的是模式,因此需要使用dependentSchemas而不是dependentRequired。此外,您还缺少使其成为有效模式的properties关键字。

"dependentSchemas": {
"property2": {
"required": [ "property3" ],
"properties": {
"property3": {
"required": [ "subProperty2" ]
}
}
}
},

最新更新