这是我的要求:当num == 0时,需要a;当num == 1时,b是必需的。
{
"type": "object",
"properties": {
"num": { "type": "integer" },
"a": { "type": "string" },
"b": { "type": "string" }
}
"required": [ "num" ]
}
答案 0 :(得分:0)
我目前的解决方案:
{
"type": "object",
"oneOf": [
{"$ref": "#/definitions/0"},
{"$ref": "#/definitions/1"},
],
"definitions": {
"0": {
"properties": {
"num": {"enum": [0]},
"a": {"type": "string"}
},
"required": ["num", "a"]
},
"1": {
"properties": {
"num": {"enum": [1]},
"b": {"type": "string"}
},
"required": ["num", "b"]
}
}
}
我正在使用jsonschema,它会返回is not exactly on from <#definitions/0>
。那不是我想要的。我希望它可以返回有关详细信息的消息,例如a
是必需的。
答案 1 :(得分:0)
改进版本:
{
"type": "object",
"properties": {
"num": { "type": "integer" },
"a": { "type": "string" },
"b": { "type": "string" }
}
"required": [ "num" ],
"dependencies": {
"a": {
"properties": {
"num": {
"enum": [0]
}
}
},
"b": {
"properties": {
"num": {
"enum": [1]
}
}
}
}
}