Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要帮助:Json模式设计_Json_Jsonschema - Fatal编程技术网

需要帮助:Json模式设计

需要帮助:Json模式设计,json,jsonschema,Json,Jsonschema,我正在设计json方案。在设计模式时,我面临一些问题 问题就在这里 我有一个组对象数组。我希望这个数组应该包含唯一的组对象。我想根据对象id(例如group.id)使它们唯一 如果(组[0].id==组[1].id),则组数组不是唯一的,我只想根据组id使其唯一,下面是我的Json结构 "groups": { "type": "array", "items": {"$ref": "#/group"}, "uniqueItems":true

我正在设计json方案。在设计模式时,我面临一些问题

问题就在这里

我有一个组对象数组。我希望这个数组应该包含唯一的组对象。我想根据对象id(例如group.id)使它们唯一

如果
(组[0].id==组[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模式用于定义Json数据的结构(而不是值)

一个选项是不考虑您的组节点为“数组”,而是考虑“对象”,并使用AudioTalm属性来表示所有其他属性都应该包含“类型”和“命令”属性。 然后,您将使用组中每个属性的名称作为id,因此它是唯一的


这种方法的问题在于您没有将此id限制为数字(在您的上下文中可能不可接受)。甚至可以使用patternProperties将“type,command”模式与数字“id”匹配。

请提供一些您尝试过的示例代码,以便其他人可以帮助您