数组类型的jsonschema验证不正确的数据,如何解决?

时间:2019-06-03 11:58:27

标签: jsonschema json-schema-validator

我有以下jsonschema:

{
        "$schema": "http://json-schema.org/schema#",
        "type": "object",
        "properties": {
            "abc": {
                "type": "array",
                "item": {
                   "type": "object",
                   "minItems": 1,
                   "properties": {
                        "a" : {"type": "string"},
                        "b" : {"type": "string"}
                    },
                    "required": [ "a", "b" ]
                }
            }
        },
        "required": [ "abc" ]
}

如果我将以下数据传递给验证器:

{
    "abc":  [
        {

        },
        {

        }
    ]
}

验证器将不会输出任何错误,但此类数据不正确。

1 个答案:

答案 0 :(得分:1)

您使用的是item而不是items

另外,"minItems": 1需要向上移动到父对象。

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "abc": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ]
      }
    }
  },
  "required": [
    "abc"
  ]
}

使用https://jsonschema.dev

进行了检查和验证