作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含字符串的数组,例如:
[ 'foo', 'bar' ]
可能的值是有限的。例如,有效值为 foo
、bar
和 baz
。
现在,当数组仅包含有效值时,该数组将是有效的,并且值不会超过一次,但它可以包含任意数量的值。
有效数组的示例为 [ 'foo' ]
、[ 'foo', 'bar' ]
和 [ 'bar', 'baz ']
。无效数组的示例为 []
、[ 'foo', 'foo' ]
和 [ 'bar', 'something-else' ]
.
如何使用 JSON 模式进行此验证?到目前为止,我已经弄清楚了提供 minItems
和 uniqueItems
属性的 array
类型。我还无法弄清楚的是:如何允许多个(但仅有效)值?我知道有enum
,但这只允许单个值,而不是多个。
有人可以帮忙吗?
PS:以防万一,我正在使用 ajv使用 Node.js 模块来运行验证。
最佳答案
更清楚地阐明解决方案:
{
"type": "array",
"items": {
"type": "string",
"enum": [ "foo", "bar", "baz" ]
},
"uniqueItems": true,
"minItems": 1
}
参见:https://spacetelescope.github.io/understanding-json-schema/reference/array.html
关于arrays - JSON 模式中的多值枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41736770/
我是一名优秀的程序员,十分优秀!