【发布时间】:2017-11-11 18:51:45
【问题描述】:
如果另一个属性具有特定值,我需要创建一个预期属性存在的架构。
{"handleFailure":"redirect","redirectUrl":"http://something.com"}
和
{"handleFailure":"reject"}
应该都是有效的,但是
{"handleFailure:"redirect"}
由于redirectUrl 属性不存在,因此应该无效。
我已经尝试用两个模式创建一个顶级 oneOf,像这样
{
"type": "object",
"additionalProperties": false,
"oneOf": [
{
"properties": {
"handleFailure": {
"type": "string",
"enum": [
"redirect"
]
},
"redirectUrl": {
"type": "string",
"format": "uri"
}
}
},
{
"properties": {
"handleFailure": {
"type": "string",
"enum": [
"reject"
]
}
}
}
]
}
但我收到有关未定义属性的错误。 有没有办法做到这一点?
【问题讨论】:
-
我能够解析您的架构并创建对其进行验证的对象。您能否更具体地说明您收到的错误消息?
-
您是否尝试过将 additionalProperties 标志放入每个 oneOf 架构中?
-
谢谢,移动标志解决了它。不敢相信我花了一个小时。
标签: jsonschema