【问题标题】:Multi-value enum in JSON schema?JSON模式中的多值枚举?
【发布时间】:2017-06-03 20:32:15
【问题描述】:

我有一个包含字符串的数组,例如:

[ 'foo', 'bar' ]

可能的值是有限的。例如,有效值为foobarbaz

现在,当数组只包含有效的值时,数组应该是有效的,没有超过一次的值,但它可以有任意数量的值。

有效数组的示例为[ 'foo' ][ 'foo', 'bar' ][ 'bar', 'baz' ]。无效数组的示例为 [][ 'foo', 'foo' ][ 'bar', 'something-else' ]

如何使用 JSON 模式进行此验证?到目前为止,我已经找到了array 类型,它提供了minItemsuniqueItems 属性。我还想不通的是:如何允许多个(但只有有效)值?我知道有enum,但这只允许一个值,而不是多个。 p>

有人可以帮忙吗?

PS:以防万一,我使用带有 Node.js 的 ajv 模块来运行验证。

【问题讨论】:

    标签: arrays json validation jsonschema


    【解决方案1】:

    更清楚地说明解决方案:

    {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [ "foo", "bar", "baz" ]
      },
      "uniqueItems": true,
      "minItems": 1
    }
    

    见:https://spacetelescope.github.io/understanding-json-schema/reference/array.html

    【讨论】:

    【解决方案2】:

    好的,我自己搞定了……

    您还需要提供items 属性,然后为每个项目定义它需要为type: 'string' 并且其值为enum: [ 'foo', 'bar', 'baz' ]

    这样可以确保每个项目都是一个具有有效值的字符串,然后对整个数组强制执行此操作☺️

    【讨论】:

      猜你喜欢
      • 2016-03-09
      • 1970-01-01
      • 2015-10-15
      • 2017-07-03
      • 2022-11-21
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多