jsonschema для типа массива проверяет неверные данные, как исправить? - PullRequest
1 голос
/ 03 июня 2019

У меня есть следующая 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 Ответ

1 голос
/ 03 июня 2019

Вы использовали 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

...