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
...
我有这个 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
...