我正在创建一个JSON模式,其中一个字段是一个数组字段,可以有两个自定义类型。现在我希望这个字段可以有一个自定义类型,其中max item为1,另一个为0到n。
"field-1": {
"type": "array",
"system-generated": true,
"anyOf": [{
"items": {
"$ref": "customItem1"
}
}, {
"items": {
"$ref": "customItem2"
}
}
]
}
考虑到上述情况,我希望field-1具有customItem1 max一个实例,customItem2具有0到n个实例。
答案 0 :(得分:1)
不幸的是,没有办法强制数组包含特定数量的内容。您可以做的最接近的是强制在数组中存在某些内容(1到n)。
如果“customItem1”始终是第一项,则可以完成。
{
"type": "array",
"anyOf": [
{
"items": [
{ "$ref": "#/definitions/customItem1" }
],
"additionalItems": { "$ref": "#/definitions/customItem2" },
},
{
"items": { "$ref": "#/definitions/customItem2" }
}
],
"definitions": {
"customItem1": { "type": "string" },
"customItem2": { "type": "boolean" }
}
}