json - Json Schema - 数组内字符串的验证模式被忽略
问题描述
我有一个这样定义的模式:
"permissions": {
"type": "array",
"properties": {
"items":
{
"$ref": "#/definitions/permissionsType"
}
}
},
和权限类型:
"permissionsType": {
"type": "string",
"pattern": "^[a-zA-Z0-9]+(:[a-zA-Z0-9][a-zA-Z0-9-]+)+$"
},
...
我不确定为什么模式正则表达式被忽略。
解决方案
删除properties
关键字,它将按预期工作。
我不确定您要对properties
此处的关键字做什么。properties
仅当正在验证的实例是对象时才适用。因为实例是一个数组,properties
所以被忽略。如果该实例是一个对象,则该properties
关键字将适用,但它需要一个属性名称"items"
与 匹配的对象#/definitions/permissionsType
。我不认为那是你的意思。我认为您想要一个其项目全部匹配的数组 #/definitions/permissionsType
。
"permissions": {
"type": "array",
"items": { "$ref": "#/definitions/permissionsType" }
}
推荐阅读
- ruby-on-rails - Is there a best practice for fetching link previews?
- reactjs - 必须安装哪些反应依赖项?
- ruby - Ruby on Rails - 将 Float::INFINITY 与 where 查询一起使用,有什么缺点吗?
- python-3.x - 如何从列表中的列表中过滤出字符串并附加到新列表
- ram - 如何设置内存数据库(如griddb)的内存大小?
- decode - SHA256 错误识别
- c# - .NET 运行时未显示在 LogNames 中
- wso2 - Wso2 3.2 中的故障转移配置
- sockets - 俄罗斯方块游戏 - 使用套接字在 python 中联网
- java - 在执行词法分析时,如何正确处理“>”字符的“类型上下文”规则(Java SE 16 规范§3.2)?