Json 架构验证 : Unique key in json array

标签 json validation jsonschema

我有以下 JSON 数据:

[
  {
  "unique1":{
    "value":3
    }
  },
  {
  "unique2":{
    "value":4
    }
  }
]
每个数组项都有一个带有一个顶级唯一键的 json 对象。
当我尝试为它编写验证模式时,我只能验证整个数组是唯一的,而不是每个数组中的顶级键。
{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "type": "array",
  "uniqueItems": true,
  "items": {
    "type": "object",
    "patternProperties": {
      "^.*$": {
      }
    }
  }
}
以下 JSON 数据应该无法验证:
[
  {
  "unique1":{
    "value":3
    }
  },
  {
  "unique1":{
    "value":4
    }
  }
]

最佳答案

没有允许表达此验证要求的标准 JSON 模式关键字。

Ajv (对于 JavaScript)有一个自定义关键字“uniqueItemProperties”(在 ajv-keywords 包中)可以满足您的要求。

您可以为标准的下一版本提出建议。

关于Json 架构验证 : Unique key in json array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46566218/

相关文章:

python - 无法使用 Python 循环分页 API 响应

使用 Remote 的 JQuery 验证将空数据发布到 Web 服务

javascript - 无法让 JavaScript 在提交时运行

JAVA json架构2 POJO

javascript - 需要更好的 JSON 模式来验证稀疏矩阵数据对象

php - Groovy httpbuilder ResponseParseException无效的JSON字符串

css - 定义 joint.dia.Link 时如何设置标签属性的样式?

JSONSchema 将一个大模式文件拆分为多个逻辑小文件

java - 通过java在snappy数据中插入json对象时出现错误

scala - 将 Option[Validation[E, A]] 转换为 Validation[E, Option[A]]