为了账号安全,请及时绑定邮箱和手机立即绑定

JSON Schema:非空元素唯一的数组

JSON Schema:非空元素唯一的数组

慕标琳琳 2023-05-25 16:11:16
我正在尝试构建满足以下条件的 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?
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

uniqueItems这超出了JSON Schema 能够表达的能力,也不是约束。您将需要在应用程序业务逻辑的其他地方检查此要求。



查看完整回答
反对 回复 2023-05-25
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信