JSON Schema从选定的一个或多个项目返回列表

时间:2017-07-10 22:47:44

标签: json jsonschema

我正在尝试定义一个允许用户从固定列表中选择一个或多个值的JSON模式。假设我有一个属性“列”,例如:

http://a.xyz/resource?columns=col1,col2

我将其定义为返回一个数组,但我也想要

http://a.xyz/resource?columns=col3

有效,返回单个元素数组。我有这个:

"properties": {
    "columns": {
        "oneOf": [
            {
                "type": "array",
                "uniqueItems": true,
                "minItems": 2,
                "items": {
                    "type":"string",
                    "enum": ["col1", "col2", "col3", "col4"]
                }
            },
            {
                "type":"string",
                "enum": ["col1", "col2", "col3", "col4"]
            }   
        ]
    }
}

但如果选择了一个元素,我必须将结果强制转换为数组。更糟糕的是,这样的查询:

http://a.xyz/resource?columns=col3,blah

没有报告“blah”不是列,就像我删除上面的第二个块一样。

0 个答案:

没有答案