我的应用程序中有下面的JSON模式,我正在使用NewtonSoft JSON schema validation
库根据我的模式验证用户JSON。
我需要设置的规则是-
- 如果用户在JSON中设置了
property2
,那么property3
也应该存在,subProperty2
也应该存在于property3
之下 - 如果用户没有设置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" ]
}
}
}
},