如何使用 JSON Schema Validator 校验 JSON 数据
分别输入 JSON 数据和 JSON Schema,运行校验后查看有效性结论与验证详情。若输入为空或无法解析,结果会显示为无效并说明缺失或解析问题。
先了解它能检查什么
JSON Schema Validator 适合在提交数据、接口联调或排查 JSON 内容时,检查一段 JSON 数据是否符合另一段 JSON Schema 的声明。工具会先读取数据文本和 Schema 文本,再根据类型、对象属性、数组项目及部分数值或字符串规则给出有效性结果和相关验证详情。它的判断重点是“数据是否通过验证”,不要把操作是否成功与数据是否有效混为一谈。
按这几个步骤完成校验
-
准备两段文本:一段是待检查的 JSON 数据,另一段是 JSON Schema。两者分别放入对应输入框;这两个输入框都可以留空,但留空会得到无效结果,因此实际校验时应同时填写内容。
-
先确认两段文本本身都是可解析的 JSON。数据可以是对象、数组、字符串、数字、整数或布尔值;Schema 则需要写成用于描述校验规则的 JSON 文档。
-
在 Schema 中声明需要的规则。例如,为属性指定类型,为对象列出属性并标记必填项,为数组指定项目规则,也可以加入枚举、数值最小值或最大值,以及字符串长度范围。若对象关闭了额外属性,未声明的属性也可能导致验证不通过。
-
提交或运行校验。工具会先解析数据和 Schema,之后才进行规则检查。如果任一文本为空或只含空白,会指出数据或 Schema 缺失;如果文本不能解析为 JSON,则返回无效结果并附带解析错误说明。
-
查看输出中的有效性结论和验证详情。发现问题后,按详情定位是数据类型、缺少必填属性、额外属性、数组项目,还是数值或字符串限制不符合,再修改数据或 Schema 后重新检查。
如何理解校验结果
看到“有效”时,表示当前解析出的数据通过了所提供 Schema 中由工具执行的检查;看到“无效”时,应结合验证详情判断具体原因。比如,属性声明为字符串却提供数字,会触发类型问题;对象缺少声明为必填的属性,或在禁止额外属性时出现未声明属性,也会导致不通过。数组规则会递归检查项目,嵌套对象同样会继续检查其中的值。
如果输入为空,结果仍可能显示操作已成功,但这不代表数据有效,因为有效性是单独报告的。解析失败也遵循这一点:先修正 JSON 语法,再判断 Schema 规则是否匹配。使用时还应把结果理解为当前实现所执行检查的反馈,而不是对 JSON Schema 全部规范能力的证明;未明确支持的引用、组合、格式或模式规则,不应据此推断已经被执行。
使用示例
你要检查商品库存数据,确保库存字段是整数且不会低于 Schema 设定的最小值。
在商品库存检查中,把库存值为负数的 JSON 数据与声明整数最小值为 0 的 Schema 分别输入,然后运行校验并查看有效性和验证详情。
结果应包含数据有效性结论,并在不通过时附带与数值限制相关的验证详情;操作状态与有效性结论分别报告。
使用限制
- 结果只反映当前工具已执行的校验,包括已声明的类型、属性、数组项目及部分值域规则;不能据此推断引用、组合、格式或模式规则已被支持。
常见错误
- 常见原因是把 JSON 数据或 Schema 留空,或直接粘贴了不能解析的文本。请同时填写两段内容,并先分别确认它们是合法 JSON,再重新提交。
常见问题
输入为空时会发生什么?
如果两段输入中任一段为空或只含空白,工具会把数据报告为无效,并指出 JSON 数据或 Schema 缺失。
JSON 语法错误会怎样显示?
如果文本不是可解析的 JSON,工具会先返回无效结果,并提供解析错误说明;修正语法后才会进入规则校验。
可以检查数字的最小值吗?
如果 Schema 声明了整数最小值,输入的负整数可能因低于该值而验证不通过;这属于数值限制检查。