求助定义可验证任意国家编码的JSON Schema(固定长度数组要求)
正确的JSON Schema定义方案
你的尝试中核心问题是**patternProperties的正则表达式不匹配国家编码格式**,以下是修正并优化后的Schema:
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://example.com/object1659608644.json", "title": "Root", "type": "object", "required": ["id", "country_metric"], "properties": { "id": { "type": "integer" }, "country_metric": { "type": "object", // 匹配两位大写字母格式的国家编码(可根据实际需求调整正则) "patternProperties": { "^[A-Z]{2}$": { "type": "array", "items": { "type": "number" // 若仅需验证整数,可改为"integer" }, "minItems": 5, "maxItems": 5 // 强制数组恰好包含5个元素 } }, // 可选配置:禁止出现不符合国家编码规则的键,若允许其他键可删除此项 "additionalProperties": false } } }
关键调整说明:
- 修正正则规则:把原本匹配数字的
^[0-9]+$替换为^[A-Z]{2}$,适配示例中两位大写字母的国家编码格式;如果需要支持小写或更长编码,可修改为^[A-Za-z]+$等。 - 明确数值类型:将数组元素类型设为
number,覆盖整数、浮点数等所有数值场景;若仅需验证整数,保留integer即可。 - 可选的额外约束:
additionalProperties: false可以确保country_metric下的所有键都符合国家编码规则,避免非法键值对混入。
内容的提问来源于stack exchange,提问作者museshad
相关产品推荐
相关产品推荐

