我有一个包含字符串的数组,例如:
[ 'foo', 'bar' ]
可能的值是有限的。例如,有效值为foo
,bar
和baz
。
现在,当数组仅包含有效值,且不超过一个值,但可以具有任意数量的值时,该数组即为有效。
为有效数组的例子是[ 'foo' ]
,[ 'foo', 'bar' ]
和[ 'bar', 'baz' ]
。无效阵列的例子是[]
,[ 'foo', 'foo' ]
和[ 'bar', 'something-else' ]
。
如何使用JSON模式进行验证?到目前为止,我已经弄清楚了array
提供minItems
和uniqueItems
属性的类型。我还不能弄清楚的是:如何允许多个(但仅有效)值?我知道有enum
,但这仅允许一个值,而不允许多个值。
有人可以帮忙吗?
PS:以防万一,我正在使用带有Node.js 的ajv模块来运行验证。
更清楚地说明解决方案:
{ "type": "array", "items": { "type": "string", "enum": [ "foo", "bar", "baz" ] }, "uniqueItems": true, "minItems": 1 }
参见:https : //spacetelescope.github.io/understanding-json-schema/reference/array.html