如何使patternProperties在JSON模式中采用特定的格式?

xqkwcwgp  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(117)

我有下面的模式:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "additionalProperties": {
        "type": "string"
    }
}

我尝试让additionalProperties的键符合URL,这样它将验证以下内容:

{
    "https://google.com": "google"
}

但不是这个

{
    "google": "website"
//   ^^^^^^ this is not a url
}

我该怎么做呢?

z9ju0rcb

z9ju0rcb1#

您可以使用patternProperties指定属性名称的格式,它采用与pattern关键字类似的模式。
如果你想做一些更复杂的事情,你可以使用propertyNames,它接受一个模式,属性名必须根据这个模式进行验证。

{
  "propertyNames": {
    "format": "iri"
  },
  "additionalProperties": {
    .. schema for the property values themselves
  }
}

参考:https://json-schema.org/understanding-json-schema/reference/object.html#property-names

相关问题