我试图弄清楚如何为一个必须包含2个元素的数组编写JSON模式,其中每个元素都符合自己的子模式。我根本不知道,因为anyOf
,allOf
,oneOf
都不适合这里。
让我们说我已经分别定义了ss1
和ss2
类型元素的t1
和t2
个子模式。如何编写一个模式,该模式将接受一个类型为t1
(符合ss1
)的元素和另一个类型为t2
的元素(符合ss2
)的数组? / p>
答案 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" }
}
}