使用JSON模式,当属性bar
(a foo
)设置为boolean
时,如何指定属性true
是必需的?
我尝试了以下操作:
{
"type": "object",
"properties": {
"foo": { "type": "boolean" },
"bar": { "type": "string" }
},
"if": {
"properties": {
"foo": { "boolean": true }
},
"required": ["foo"]
},
"then": { "required": ["bar"] }
}
但是,这无法验证:
{
"foo": false
}
因为尽管bar
是foo
,但似乎仍需要false
:
Message:
Required properties are missing from object: bar.
Schema path:
#/then/required
我也尝试过:
{
"type": "object",
"properties": {
"foo": { "type": "boolean" },
"bar": { "type": "string" }
},
"if": {
"properties": {
"foo": { "const": "true" }
},
"required": ["foo"]
},
"then": { "required": ["bar"] }
}
但是它接受以下JSON,应将其视为无效:
{
"foo": true
}
我已经看过this answer,但是它为string
使用了foo
类型,效果很好。我需要foo
才能成为boolean
。
bar
为foo
时,我如何规定true
是必需的?答案 0 :(得分:1)