使用javascript + tv4验证JSON模式

时间:2014-02-25 12:20:07

标签: javascript json jsonschema

我正在尝试使用TV4验证JSON方案。

我的验证是使用分层JSON,并基于此基本example

var data = {
    "foo": "bar"
};

var schema = {
    "type": "object",
    "properties": {
        "foo": {
            "type": "string"
        }
    },
    "required": ["foo"]
};

var result = tv4.validateResult(data, schema);

在我的测试中,我想再添加一个层次结构级别:

 var data = {
        "foo": {
           "test": "bar"
        }
    };

    var schema = {
        "type": "object",
        "properties": {
            "foo": {
                    "test": {
                       "type": "string"
                     }
            }
        },
        "required": ["foo"]
    };

    var result = tv4.validateResult(data, schema);

此验证不起作用(如果我输入整数而不是字符串,它会传递validation

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

免责声明:我之前从未使用过TV4。

我猜测架构应该将foo属性指定为object属性string ...类似于:

{
    "type": "object",
    "properties": {
        "foo": {
            "properties": {
                "test": {
                   "type": "string"
                 }
            },
            "type": "object"
        }
    },
    "required": ["foo"]
}

答案 1 :(得分:0)

快速浏览一下forum question后,我发现我错过了子树的“属性”属性。现在它将work(当值为整数时,它将无法通过验证。