JSON Schema验证报错求助:缺失必填字段ObjectId与Site
JSON Schema验证错误解析及排查建议
当前错误:数组索引703的对象缺失必填属性ObjectId和Site
这个错误的意思很明确:你的JSON数据里存在一个数组,数组中索引为703的元素(也就是第704个对象,因为JSON数组索引从0开始计数),没有包含你的JSON Schema里标记为必填的ObjectId和Site两个属性。
在JSON Schema规则里,如果某个对象结构被定义了"required": ["ObjectId", "Site"],那么数组里的每一个对象都必须同时存在这两个属性,少其中一个或者两个都缺,都会触发这个验证失败提示。另外要注意,JSON是大小写敏感的,别把属性名写错(比如写成objectid或者site)。
之前的ListBaseType包含多种类型错误
这个错误说明你定义的ListBaseType类型约束出了问题:
- 要么是你在Schema里给
ListBaseType同时指定了不兼容的类型(比如既写了"type": "string"又写了"type": "array"); - 要么是对应的数据里,属于
ListBaseType的字段出现了多种Schema不允许的类型值(比如有的元素是字符串,有的是数字)。
如果是想允许多种类型,得用oneOf或anyOf来明确声明,不能直接给type字段传多个值。
排查小技巧
- 找索引703的对象:直接定位到JSON数组的第704个元素,检查它的结构,补全缺失的
ObjectId和Site,或者修正属性名; - 检查
ListBaseType定义:打开你的Schema文件,找到ListBaseType的部分,确认type的定义是否合理,对应的数据是否符合类型要求。
内容的提问来源于stack exchange,提问作者Nick9one1
相关产品推荐
相关产品推荐

