为什么json模式验证缺少属性的json

时间:2017-11-07 13:23:55

标签: json validation jsonschema

我正在使用这个json架构验证器:https://www.jsonschemavalidator.net/来验证一些json。令我感到惊讶的是,即使json中缺少某个属性,它也会验证模式。

模式

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "properties": {
      "test": {
        "type": "array"
      }
    }
}

应该验证

{
    "test": []
}

不应该验证(但验证!)

{}

为什么这被认为是有效的,我如何验证json以便属性test必须是json的一部分?

1 个答案:

答案 0 :(得分:2)

可以执行required属性。似乎验证默认情况下对所有属性使用required: false

这会验证并强制属性存在:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "properties": {
      "test": {
        "type": "array"
      }
    },
    "required": ["test"]
}