JsonSchema - 定义 white-listed 组值

JsonSchema - Defining a white-listed set of values

我觉得我的问题之前不可能没有被问过,但我找不到任何答案。

如标题所示,我正在尝试创建一个 JSON 模式,当且仅当其中的值的 All 时,该模式才会验证数组在 pre-defined 集合中定义。

例如: 如果预定义集合包含{"One", "Two", "Three"},而我要验证的数组是["One", "Two"],那么数组应该是有效。 但是如果数组是["One", "Two", "Four"],那么数组就是无效的.

所以我知道 enum 但它没有实现我的目标,因为只要 ONE 个值在预定义集中定义,它就会验证。

我也知道 min/max-contain 组合,但它们可能会干扰预定义集合 中的 none 值必须 出现的要求。它们都可能出现,也可能不出现。

有没有人知道如何实现这样的要求?

好吧,让我们分解一下:

放在一起:

{
  "type": "array",
  "items": {
    "enum": [ "one", "two", "three" ]
  }
}