Schema 与类型生成

JSON Schema 差异比较看清升级会影响哪一侧

粘贴两版 JSON Schema,或载入成对示例;先选择数据从哪个生产者流向哪个消费者。

JSON Schema 差异比较

旧版 JSON Schema

新版 JSON Schema

两份 Schema 只在此浏览器中处理;不会上传输入,也不会请求引用 URL。

校验选项

准备好后手动校验。

差异结果

上线新接口前,旧记录仍按上一版契约保存。JSON Schema 差异比较把“哪些值会被接受”的变化列出来,比逐行找文本更适合排查迁移风险。

当新服务会写出旧服务从未见过的数据时,再把比较方向切到反向;新增可选字段与新增必填字段不能按同一规则判断。

为什么用 JSON Schema 差异比较?

同一处改动,在两种数据流向上的风险可以相反。

先固定生产者与消费者

默认看旧数据能否交给新 Schema。切换方向后,报告会重新标出新数据交给旧消费者的风险,避免把“向后兼容”说成一个模糊结论。

两棵 Schema 树对应相反的数据流箭头,其中一个方向旁有风险标记。

把不确定项留在台面上

报告会列出 $ref、组合条件等路径,提醒人工复核,而不会给复杂条件盖上安全印章。

两份 Schema 文档之间的引用分支被高亮,旁边有独立的待复核标记。

先定方向,再看路径

01

确认旧数据还是新数据

默认方向是旧生产者→新消费者。若旧应用要读取新数据,切换到反向;双向模式可把两份摘要并排查看。

02

沿 JSON Pointer 核对

新增必填名称显示在 /required 下,类型变化显示在 /properties 路径中;只看风险的筛选也会保留待复核项。

03

修改后重新运行

改动任一 Schema 或兼容方向会立即使结果过期。按 Ctrl/Cmd+Enter 重新比较后,才可复制或下载报告。

具体变化一项项对照

必填字段与类型

JSON Schema 版本对比会区分 required 的增减和 type 接受值的收窄;这两类 Schema 破坏性变更都与数据方向有关。

枚举与边界

JSON Schema 兼容性检查按成员集合比较 enum,并核对常见长度、数量及数值上下界;单纯调整键顺序不会被当成规则变化。

可带走的审查记录

每条差异给出旧值、新值和路径,必填字段变化也能单独定位。完整 JSON 报告可下载,当前结果也可复制。

风险提示的真实边界

不是全量兼容证明
JSON Schema 差异比较只对覆盖的规则给出有限判断。应用逻辑、跨字段约束与所有可能实例并未得到形式化证明。
引用不自动解析
$ref 和组合关键词会列为待复核;工具不访问 URL,也不把本地定义展开成另一份 Schema。
定义属性不等于必填
仅在 properties 中加字段不自动判破坏;还须考虑 required、additionalProperties 及其他限制,所以这种变化先标待复核。

JSON Schema 差异比较常见问题

这个 JSON Schema 检查器支持哪些差异模式?

本页比较 Schema 的结构与风险方向;普通 JSON 对比只看实例值的增删改。

标准化模式是否忽略模式键的顺序?

是。仅缩进或对象键顺序变化不会生成结构差异;required 和 enum 按集合比较。

它能帮助处理大量使用 $ref 的模式吗?

会列出 $ref 的路径,但不展开或解析引用,需人工检查其目标与约束。

JSON 对比和普通文本对比有什么区别?

JSON 对比按数据结构比较,文本对比逐字符比较;本页还会解释部分 Schema 关键词的约束方向。

数据会上传吗?能对比多大的文件?

不会上传。每份输入最多 50 万字符,合计不超过 100 万字符;超限会明确失败,不输出部分报告。

遇到了需要复核的约束?

现在进行 JSON Schema 差异比较

把两版契约放在同一页,先选数据流向,再保存可复核的差异报告。JSON Schema 差异比较不会替你判断业务方是否已经完成迁移。