JSON Schema:具有给定子模式的正好n个元素的数组

时间:2015-06-23 15:49:29

标签: arrays json jsonschema

我试图弄清楚如何为一个必须包含2个元素的数组编写JSON模式,其中每个元素都符合自己的子模式。我根本不知道,因为anyOfallOfoneOf都不适合这里。

让我们说我已经分别定义了ss1ss2类型元素的t1t2个子模式。如何编写一个模式,该模式将接受一个类型为t1(符合ss1)的元素和另一个类型为t2的元素(符合ss2)的数组? / p>

1 个答案:

答案 0 :(得分:1)

items关键字有一个特殊格式。它可以是一个模式数组,而不是作为模式的值。以这种方式使用items时,数组中的项必须符合items模式数组中的相应模式。这是一个工作示例,假设t1 = string,t2 =整数。

{
  "type": "array",
  "items": [
    { "$ref": "#/definitions/ss1" },
    { "$ref": "#/definitions/ss2" }
  ],
  "minItems": 2,
  "maxItems": 2,
  "definitions": {
    "ss1": { "type": "string" },
    "ss2": { "type": "integer" }
  }
}