需要帮助:Json模式设计



我正在设计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"

最新更新