如何用JSON Schema内置格式校验以IPv4/IPv6/主机名为键的文档
使用JSON Schema内置格式校验IPv4/IPv6/主机名类型的键
你可以利用JSON Schema的propertyNames关键字结合内置format规则,统一校验所有对象键的格式,无需编写复杂正则。具体方案如下:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "propertyNames": { "anyOf": [ { "format": "ipv4" }, { "format": "ipv6" }, { "format": "hostname" } ] }, "additionalProperties": {} }
关键部分说明:
propertyNames:定义对象所有属性名必须满足的校验规则,这里要求所有键都符合后续格式要求。anyOf:表示键只需匹配其中一种格式即可通过校验,覆盖IPv4、IPv6、主机名三种场景。- 内置
format:ipv4:校验标准IPv4地址格式ipv6:校验标准IPv6地址格式hostname:校验符合RFC标准的主机名格式
additionalProperties:设为{}表示允许任意格式的值,满足你“值的内容无关紧要”的需求。
注意:该方案依赖JSON Schema Draft 7及以上版本,因为format对ipv4、ipv6、hostname的标准化支持从这个版本开始。
内容的提问来源于stack exchange,提问作者Sujal Singh
相关产品推荐
相关产品推荐

