利用枚举为JSON Schema添加数组校验失败,求正确配置
问题原因
你的JSON Schema校验逻辑和实际输入结构不匹配:
- 原Schema期望数组的每一项是
"a1"这类字符串枚举值 - 但实际输入的数组每一项是带有
value属性的对象,属性值才是枚举字符串
修正后的JSON Schema
把items的校验规则改成针对对象的value字段做枚举校验,同时保留uniqueItems和minItems的约束:
"typePathFund": { "type": "array", "items": { "type": "object", "properties": { "value": { "enum": ["a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8"] } }, "required": ["value"], // 确保每个对象都必须有value字段 "additionalProperties": false // 可选:限制对象只能有value字段,避免多余属性 }, "uniqueItems": true, "minItems": 1 }
关键说明
items里定义了对象结构,指定value字段的枚举规则required: ["value"]保证每个数组项的对象都包含必填的value字段- 如果需要严格限制对象只能有
value这一个属性,加上additionalProperties: false
内容的提问来源于stack exchange,提问作者Kiran Babu
相关产品推荐
相关产品推荐

