限制 JSON 中的多个项目



我正在创建一个JSON架构,其中字段是数组字段,可以有两种自定义类型。现在我希望这个字段可以有一个自定义类型,最大项目为 1,另一个为 0 到 n。

"field-1": {
"type": "array",
"system-generated": true,
"anyOf": [{
"items": {
"$ref": "customItem1"
}
}, {
"items": {
"$ref": "customItem2"
}
}
]
}

考虑到上述情况,我希望字段 1 具有自定义项目1最多一个实例,而自定义项目2具有零到n个实例。

不幸的是,没有办法强制数组包含特定数量的东西。您可以做的最接近的事情是强制数组中存在某些东西(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" }
}
}

最新更新