json - 确保数组中的项目属性在 Json Schema 中是唯一的?

标签 json jsonschema

鉴于以下 JSON 模式,是否可以指示“名称”属性应是唯一的(即“元素”数组中不应有两个具有相同“名称”的项目。

{
  "root": {
    "type": "object",
    "properties": {
      "elements": {
        "type": "array",
        "minItems": 1,
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "title": "Element Name",
              "minLength": 3,
            },
            "url": {
              "type": "string",
              "title": "Some URL"
            }
          }
        }
      }
    }
  }
}

我尝试使用 uniqueItems关键字,但它似乎是为简单的值列表而设计的。

最佳答案

不,这是不可能的。来自文档,json-schema:...一种基于 JSON 的格式,用于定义 JSON 数据的结构。

进行数据值验证非常有限,因为它不是标准的目的。很多人之前都问过这个问题,因为请求一种“唯一 ID”功能是很常见的。不幸的是,对于那些需要它的人,json-schema 并没有为您提供。

因此,如果您想确保唯一性,您唯一的选择是将“名称”作为属性键而不是属性值。

关于json - 确保数组中的项目属性在 Json Schema 中是唯一的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24763759/

相关文章:

sql - PostgreSQL 数据库模型

python - 如何在 RESTful Flask 应用程序中将 Pandas DataFrame 序列化/反序列化为 ProtoBuf/Gzip?

JSONMarshal : Is it possible to serialize/desrialize into/from 'plain' JSON (without metadata)?

json - 如何在 Json Schema 4 中定义百分比类型的属性

JSON 架构 oneOf 不适用于引用

javascript - AJV 自定义关键字验证

javascript - 获取Json数据并在分割窗口onclick html上显示

java - 如何用资源链接替换 ​​Swagger 的枚举?

jsonschema dependentSchema 未验证

php - 我不确定我的 JSON 格式是否正确以访问它