Json 架构验证数组中的 属性 名称

Json schema validate property name in array

我有这个 json 对象

{
  "status": 68,
  "error": [
    {
      "description_ru": "Ошибка авторизации. Пожалуйста, проверьте правильность введенных e-mail и пароля."
    },
    {
      "description_en": "Authorization error. Please check login and password."
    }
  ]
}

然后我写下一个 json 模式

{
  "title": "Неверно указан пароль",
  "type": "object",
  "properties":{
    "status":{
      "description": "Статус операции",
      "type": "integer"
    },
    "error":{
      "description":"Информация об ошибке на разных языках",
      "type": "array",
      "items": {
        "properties":{
          "description_ru":{
            "description": "Информация об ошибке на русском языке",
            "type": "string"
          },
          "description_en":{
            "description": "Информация об ошибке на английском языке",
            "type": "string"
          }
        }
      }
    }
  },
  "required":["status", "error"],
  "additionalProperties": false
}

我有下一个问题。如果我将 json 架构 error 中的名称更改为 error-edited 和 运行 验证,那么我会收到下一个错误:

false Property error does not exist in the schema

好的,完美!

但是,如果我将 属性 name inside array error in json schema description_en 更改为 *description_en-edited 和 运行 验证,然后我没有得到错误。

请告诉我为什么会这样?

因为 "error" 是必需的,但 "description_en" 不是。

将 "additionalProperties" 添加到项目中的对象:

...
"items": {
    "type": "object",
    "properties": {
      "description_ru":{
        "description": "Информация об ошибке на русском языке",
        "type": "string"
      },
      "description_en":{
        "description": "Информация об ошибке на английском языке",
        "type": "string"
      }
    },
    "additionalProperties": false
  },
"minItems": 2
...