我正在尝试构建满足以下条件的 JSON 模式:声明具有至少一个属性的顶级对象每个属性的值将是一个数组,每个数组必须包含确切的N项目数组项必须是取自闭区间的整数[J, K],或者null每个数组中的整数项在该数组中必须是唯一的没有应用唯一性约束null(因此N和区间大小之间没有隐含关系K-J)我遇到的问题是#4 和#5。使用此模式很容易满足前 3 个要求以及第 4 个要求的一部分:{ "$schema": "http://json-schema.org/draft/2019-09/schema#", "type": "object", "minProperties": 1, "additionalProperties": { "type": "array", "minItems": N, "maxItems": N, "items": { "anyOf": [ { "type": "integer", "minimum": J, "maximum": K }, { "type": "null" } ] }, "uniqueItems": true }}我不确定如何(或者是否有可能)指定一个uniqueItems仅将约束应用于允许项的子集的数组。我尝试移动uniqueItems到架构的较低级别,希望它可以在受限范围内运行,但这不起作用。这也许可以使用条件语句,但我还没有走那条路,因为我不确定它是否真的有效,我希望有一种我忽略的更简单的方法。所以,我的问题是:有没有一种方法可以指定一个 JSON 模式数组,该数组有选择地仅对不是的项目强制执行唯一性约束null?
添加回答
举报
0/150
提交
取消