【发布时间】:2020-07-10 13:28:00
【问题描述】:
是否可以创建一个 JSON Schema 来验证一个数组是否包含至少 1 个三个非重叠类型的实例。一个简单的例子是一个任意长度的数字数组,其中至少包含一个 1、一个 2 和一个 3。
我不能使用allOf,因为这将验证数组中的每个数字都是 1、2 和 3 - 没有数字可以是????
我不能使用anyOf,因为这样我就可以拥有一个只有一个元素的数组????
我不能使用oneOf,因为我也可以有一个只有一个数字的数组
(...我也不清楚我应该使用contains 键还是在items 键内)
我正在寻找一种方式来表达这些项目中的“每个”。 JSON Schema 可以吗?
这是一个带有oneOf的损坏示例
{
"type": "object",
"properties": {
"numbers": {
"type": "array",
"contains": {
"oneOf": [
{
"const": 1
},
{
"const": 2
},
{
"const": 3
}
]
},
"items": {
"type": "number"
}
}
}
}
[1] – 不应验证
[1,2] - 不应该验证
[1,2,3] - 应该验证
[1,2,3,4] - 应该验证
【问题讨论】:
标签: javascript json jsonschema json-schema-validator