如何创建JSON Schema验证字符串字段值属于另一字段给定的字符串数组
要实现picked字段值必须是values数组内元素的校验逻辑,可使用JSON Schema Draft 2019-09及以上版本支持的$data引用功能实现,直接给出修改后的完整Schema:
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "values": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "picked": { "type": "string", "enum": { "$data": "/values" } } }, "required": ["values", "picked"] }
说明
$data: "/values"表示将当前JSON实例根路径下的values字段值,作为picked字段enum校验的可选值范围,刚好匹配需求。- 可选配置
uniqueItems: true避免values数组出现重复选项,required配置可根据业务需求决定是否保留,不需要直接删除即可。 - 目前主流JSON Schema校验工具(如Ajv等)均已支持该语法,可直接使用。
内容的提问来源于stack exchange,提问作者PiotrK
相关产品推荐
相关产品推荐

