创建模式以检查列是否为空

时间:2015-07-23 14:51:44

标签: json jsonschema

如果我有一个类似于表的结构的JSON,那么:

{
"table": {
    "rows": [
        [ 0, null, 1, 2, null ],
        [ null, 1, 2, 3, null ],
        [ 1, 2, 3, null, null ],
        [ null, null, 1, 2, 1 ]
    ]
}

我可以使用这样的模式验证它(注意,我正在使用草案3,因为这是我的用于验证模式的库正在使用,如果我找到不同的库,草案4可能是可能的):

{
    "$schema": "http://json-schema.org/draft-03/schema#",
    "title": "Table with data",
    "description": "A table with at least 1 row of data with 5 columns per row",
    "type": "object",
    "properties": {
        "table" : {
            "description" : "A table",
            "type": "object",
            "properties": {
                "rows": {
                    "required" : true,
                    "description": "An array of rows",
                    "type" : "array",
                    "minItems" : 1,
                    "items" : {
                        "type": "array",
                        "minItems": 5,
                        "maxItems": 5
                    }
                }
            },
            "required":true
        }
    }
}

这只是检查我们是tabletablerows rows是一个至少包含一个项目的数组。行本身是数组,并且那些数组具有5项(列)。这很容易。

我想检查的是,每列(0...4)都存在至少一个row,其中值不为空。这是否可以在json模式中表达?或者是超出可以做到的事情。

0 个答案:

没有答案