如何在 JSON 模式中将 dependentRequired 与相对引用一起使用
How to use dependentRequired with relative reference in JSON schema
我的应用程序中有以下 JSON 架构,我正在使用 NewtonSoft JSON schema validation
库根据我的架构验证用户 JSON。
我需要设置的规则是-
- 如果用户在 JSON 中设置
property2
那么 property3
也应该存在并且 subProperty2
也应该存在于 property3
. 下面
- 如果用户没有设置
property2
则不需要 property3
。
我为此使用 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" ]
}
}
}
},
我的应用程序中有以下 JSON 架构,我正在使用 NewtonSoft JSON schema validation
库根据我的架构验证用户 JSON。
我需要设置的规则是-
- 如果用户在 JSON 中设置
property2
那么property3
也应该存在并且subProperty2
也应该存在于property3
. 下面
- 如果用户没有设置
property2
则不需要property3
。
我为此使用 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" ]
}
}
}
},