以下是我的JSON架构的摘录。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"images": {
"type": "array",
"items": { "$ref": "#/definitions/bits" },
}
},
"definitions": {
"identifier": {
"type": "string"
},
"bits": {
"type": "integer",
"enum": [
8,
16,
32
]
}
}
}
如上所述,我相信一个图像数组,其中每个元素由一个字符串标识符和一个值为8,16或32的整数组成,将被视为有效的JSON数据。
这适用于我的一些JSON数据。
但是如果我想进一步约束模式使得整数值只能是32呢?在允许某些JSON数据对原始模式有效的情况下,我该怎么做?
例如,是否可以在一个对象中引用两个模式,例如。类似的东西:
items": { "$ref": "#/definitions/bits" AND "$ref": "#/definitions/otherSchema"}
答案 0 :(得分:2)
您可以使用allOf
来验证多个架构。
{
"items": {
"allOf": [
{ "$ref": "#/definitions/bits" },
{ "$ref": "#/definitions/otherSchema" }
]
}
}