【发布时间】:2019-03-23 04:58:36
【问题描述】:
我想创建一个模式,其中我将在“oneOf”中拥有多个对象,其中将有许多任意格式的对象,其中一些键可以是必需的类型(这部分有效) 我的架构:-
{
"description": "schema v6",
"type": "object",
"oneOf": [
{
"properties": {
"Speed": {
"items": {
"anyOf": [
{
"$ref": "#/definitions/speed"
},
{
"$ref": "#/definitions/SituationType"
}
]
},
"required": [
"speed"
]
}
},
"additionalProperties": false
}
],
"definitions": {
"speed": {
"description": "Speed",
"type": "integer"
},
"SituationType": {
"type": "string",
"description": "Situation Type",
"enum": [
"Advice",
"Depend"
]
}
}
}
但是当我尝试验证此架构时,我能够验证一些不正确的值,例如
{
"Speed": {
"speed": "ABC",//required
"SituationType1": "Advisory1" //optional but key needs to be correct
}
}
我期待的正确反应是
{
"Speed": {
"speed": "1",
"SituationType": "Advise"
}
}
【问题讨论】:
-
恐怕你落入了一个常见的陷阱。
additionalProperties不能“看穿”anyOf或任何...Of关键字。我将在答案中进一步解释。 -
实际上,您混淆了一些问题!不用担心,在这里为您提供帮助 =]
标签: json schema jsonschema