jsonschema和validate-json没有验证"必需"

时间:2016-11-03 09:28:35

标签: json

架构是:

{
    "$schema": "http://json-schema.org/draft-04/schema#",

    "header": {
        "type": "object",
        "properties": {
            "token":         { "type": "string" },
            "id":            { "type": "number" },
            "command":       { "type": "string" }
        },
        "required": ["token", "id", "command"]
    }
}

但是这样的事情对验证者来说还是可以的:

{
    "badtoken": "abc123",
    "badcommand": "123"
}

命令行:

$ jsonschema -i file.json schema.json

$ validate-json file.json schema.json

为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

实际上,我想制作一个定义列表然后使用它们:

{
    "$schema": "http://json-schema.org/draft-04/schema#",

    "definitions": {
        "header": {
            "type": "object",
            "properties": {
                "token":         { "type": "string" },
                "id":            { "type": "number" },
                "command":       { "type": "string" }
            },
            "required": ["token", "id", "command"]
        }
    },

    "$ref": "#/definitions/header"
}

验证按预期工作。