需要帮助:Json Schema Design

时间:2013-05-10 04:56:54

标签: json jsonschema

我正在设计 json 方案。我在设计架构时遇到了一些问题。

这是问题所在。

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

使它们唯一

如果(groups[0].id == groups[1].id),则groups数组不是唯一的,我想仅根据组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"
                ]
            }
        }
    },

1 个答案:

答案 0 :(得分:1)

嗯,这里没有灵丹妙药。提醒Json-Schema用于定义Json数据的结构(而不​​是值)。

一个选项不是将您的组节点视为“数组”而是“对象”,并使用additionalProperties来表示所有其他属性应包含“type”和“command”属性。

然后,您将使用组中每个属性的名称作为id,因此它将是唯一的。

此方法的问题在于您不会将此ID限制为数字(在您的上下文中可能无法接受)。即使您可以使用patternProperties将“type,command”架构与数字“id”匹配。