我正在设计json方案。我在设计方案时遇到了一些问题。
问题在这里。
我有一个组对象数组。我希望这个数组包含唯一的组对象。我想让它们基于对象id (ex group.id)
如果(groups[0].id == groups[1].id)
,组数组不是唯一的,我想根据组id唯一,下面是我的Json结构。
"groups": {
"type": "array",
"items": {"$ref": "#/group"},
"uniqueItems":true
},
"group": {
"type": "object",
"properties": {
"id": {"type": "integer"},
"type": {
"type": "string",
"enum": [
"a",
"b"
]
},
"command": {
"type": "string",
"enum": [
"add",
"modify"
]
}
}
},
好吧,这里没有灵丹妙药。提醒一下Json- schema是用来定义Json数据的结构的(不是值)。
一个选项是不把你的组节点看作一个"数组"而是一个"对象",并且使用additionalProperties来表示所有附加属性都应该包含"type"one_answers"command"属性。
然后使用组中每个属性的名称作为id,因此它将是唯一的。
这种方法的问题是,您没有将此id限制为数字(在您的上下文中可能无法接受)。甚至可以使用patternProperties将"type,command"模式匹配为数字"id's"