【问题标题】:advanced json-schema multiple rules per property每个属性的高级 json-schema 多个规则
【发布时间】:2017-12-15 17:55:14
【问题描述】:

我想知道您是否可以为一个属性设置多个规则。所有的例子似乎都表明你不能。

所以我想要类似的东西:

"properties": {
  "track": {
   "type": "string",
   "pattern": "(exclusive)"
  },
  "track": {
   "type": "string",
   "pattern": "(featuring)"
  }
}

我知道在此示例中要做的显而易见的事情是让模式拥有"(exclusive)|(featuring)",但我想我想知道哪个规则失败了。同样,我以后可能想要更复杂的模式,| 可能无法解决。

【问题讨论】:

    标签: json node.js jsonschema


    【解决方案1】:

    您可以将架构与allOfanyOfoneOf 关键字结合使用。这些关键字中的每一个都采用一组模式并按照它所说的去做。 allOf 是有效的,如果 所有 模式都是有效的。 anyOf 是有效的,如果 任何 模式是有效的。 oneOf 是有效的,如果 其中一个 模式是有效的。

    这是解决问题的一种方法。

    {
      "type": "object",
      "properties": {
        "track": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "(exclusive)"
            },
            {
              "type": "string",
              "pattern": "(featuring)"
            }
          ]
        }
      }
    }
    

    【讨论】:

    • 哦,不错,可能比我的字典解决方案列表更方便,具体取决于上下文。
    猜你喜欢
    • 2020-07-11
    • 2014-09-27
    • 2013-12-30
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多