Проверка JSON, дающая успех даже при отсутствии требуемого поля

#json #jsonschema #json-schema-validator

#json #jsonschema #json-schema-validator

Вопрос:

Пожалуйста, объясните, почему этот json не выдает ошибку проверки схемы:

Схема

 {
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properites": {
    "address": {
      "type": "array",
      "items":{
          "type": "object",
          "properties": {
            "ip": {
              "type": "string"
            },
            "port": {
              "type": "integer"
            },
            "interface": {
              "type": "string"
            },
            "maskLength": {
              "type": "integer"
            }
          },
          "required": [
            "ip",
            "port",
            "interface",
            "maskLength"
          ]
        }
    }
  },
      "required": [
        "address"
  ]
}
  

JSON

 {
        "address": [
            {
                "ip": 1,
                "port": 8305
            },
            {
                "ip": "2405:200:1413:100::5:cc",
                "port": "8205",
                "interface": "eno1",
                "maskLength": 112
            },
            {
                "ip": 2,
                "port": 8105,
            }
        ]
}
  

Я тестирую это на https://www.jsonschemavalidator.net / и это дает успешную проверку, которую я не понимаю. интерфейс и длина маски являются обязательными полями в соответствии со схемой, и они отсутствуют в некоторых элементах массива. Кроме того, тип «ip» в схеме является строковым, но в json также принимается целочисленный тип. Почему этот json не отклоняется?

Ответ №1:

facepalm

У меня были неправильно написаны свойства как свойства!! Черт!