【发布时间】:2017-06-16 13:14:29
【问题描述】:
我正在尝试编写具有以下结构约束的模式验证数组:
- 它只能包含值 1,2,3,4,5
- 如果数组包含一个 1,那必须是唯一的条目
- 数组只能同时包含 2、3 或 4,例如[2,3] 不允许
- 5 可以与 2,3,4 一起出现
所以有效的数组是
[1],
[2],
[3],
[4],
[5],
[2,5],
[3,5],
[4,5]
我开始编写如下模式:
{
"type": "array",
"oneOf": [
{ "items": { "enum": [1] } },
{
"anyOf": [
???
]
}
]
}
我无法让??? 部分工作。有可能吗?
注意:我想避免对所有可能的数组进行硬编码,因为我必须验证更复杂的结构 - 这只是一个示例。此外,最佳方案是仅使用anyOf, allOf, oneOf, not 的解决方案,避免使用minItems 之类的关键字
【问题讨论】:
标签: arrays json validation jsonschema