json-schema 中的枚举(正则表达式)

问题描述 投票:0回答:1

我的json数据集中的某个类别应该限制为有限数量的值,所以我将它们放在

enum
中的列表中。有两个问题:

  1. 在某些情况下需要在值上加上星号;这可以应用于所有值,例如
    water
    water*
    都是有效的。
  2. 其中一个值包含附加信息,由括号之间的两个字符表示,例如
    value(ab)
    .

对于这两个问题,使用正则表达式模式是最简单的,但是可以将

enum
pattern
结合起来吗? (我知道可以将所有可能的值放在由
pattern
分隔的
|
中,但这并不理想。)

{
  "category": {
    "enum": ["water", "beer", "wine", "soda([a-z]{0,2})"]
  }
}

有效值为

water
water*
beer
beer*
wine
wine*
soda()
soda()*
,最后两个值是两个小写字母之间的任意组合括号。

json regex validation schema jsonschema
1个回答
0
投票

您可以将

anyOf
pattern
一起使用。

{
  "type": "string", 
  "anyOf": [
    { "pattern": "^water.*" },
    { "pattern": "^beer.*" },
    ...
  ]
}
``
© www.soinside.com 2019 - 2024. All rights reserved.