【发布时间】:2017-10-04 13:30:22
【问题描述】:
我有以下 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
}
}
]
【问题讨论】:
-
如果名称唯一性不重要,我建议使用 ID 作为对象键,并将对象列表转换为对象对象。可以在这里看到一个例子:stackoverflow.com/a/51987954/2868017
-
密钥必须是唯一的。将 id 重命名为 value 以强调它不充当 id。
标签: json validation jsonschema