Json Schema-忽略数组内字符串的验证模式

时间:2020-08-12 16:12:48

标签: json jsonschema

我有这样定义的模式:

"permissions": {
          "type": "array",
            "properties": {
               "items":
                 {
                   "$ref": "#/definitions/permissionsType"
                 }
            }
        },

和PermissionsType:

"permissionsType": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9]+(:[a-zA-Z0-9][a-zA-Z0-9-]+)+$"
    },

...

我不确定为什么正则表达式正则表达式会被忽略。

1 个答案:

答案 0 :(得分:2)

删除properties关键字,它将按预期工作。

我不确定您在尝试使用properties关键字做什么。 properties仅在要验证的实例是对象时适用。因为该实例是一个数组,所以properties被忽略。如果实例是一个对象,则将应用properties关键字,但是它将期望一个属性名称为"items"#/definitions/permissionsType匹配的对象。我认为那不是你的意思。我认为您需要一个数组,其所有项均匹配#/definitions/permissionsType

"permissions": {
  "type": "array",
  "items": { "$ref": "#/definitions/permissionsType" }
}