Json模式验证:json数组中的唯一键

时间:2017-10-04 13:30:23

标签: json validation jsonschema

我有以下JSON数据:

[
  {
  "unique1":{
    "id":3
    }
  },
  {
  "unique2":{
    "id":4
    }
  }
]

每个数组项都有一个json对象,其中包含一个顶级唯一键。 当我尝试为它编写验证模式时,我只能验证完整数组是唯一的,而不是每个数组中的顶级键。

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "type": "array",
  "uniqueItems": true,
  "items": {
    "type": "object",
    "patternProperties": {
      "^.*$": {
      }
    }
  }
}

以下JSON数据无法验证:

[
  {
  "unique1":{
    "id":3
    }
  },
  {
  "unique1":{
    "id":4
    }
  }
]

1 个答案:

答案 0 :(得分:2)

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

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

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