校验本地自备 Schema 约束
分别准备实例与权威 Schema,区分校验失败和不支持的约束,并保存每条完整诊断。
按 Schema 校验
检查自备 Draft 2020-12 约束,定位受支持规则的全部失败并保存完整报告。
| 结果 | 含义 | 下一步 |
|---|---|---|
| 实例有效 | 实例满足受支持的自备约束 | 保留实例、Schema 与完整报告 |
| 实例无效 | 受支持的约束已完成求值且失败 | 逐条检查实例位置与求值路径 |
| 输入或范围被拒绝 | 请求没有完成校验 | 修正语法或不支持的约束后重试 |
明确选择受支持的输入
本页工具参考提供当前限制、控件和支持范围;语法有效的输入仍可能因范围、来源路径工作量或完整输出容量被拒绝。
所选文件仅在点击运行后读取。读取、检查与处理共同计入整个 10 秒任务期。
每个角色仅使用所选模式;所选空文件或无效文件不会回退到粘贴内容。
恢复与保存
若想约束数组元素,把对象规则放在 items 内;修正语法或不支持的约束后重试。通过表示该实例符合所支持的自备 Schema。
保留完整依据
这里是有界预览;完整诊断、匹配项和来源信息仍保留在完整复制与下载中。
完整报告保留每条诊断及其出现次数,不对重复条目去重。
技术诊断原文属于报告数据;界面标签已翻译,报告内容不会被改写。
- 核对每条诊断是否对应预期实例值与 Schema 规则。
- 保留重复的父级与叶子诊断,不把它们压成一条消息。
- 保存 validation-report.json 或完整报告复制文本,并同时保留自备实例与 Schema。
恢复时不静默切换来源
若想约束数组元素,把对象规则放在 items 内;修正语法或不支持的约束后重试。通过表示该实例符合所支持的自备 Schema。 取消后可用相同有效输入启动新请求;被拒绝或超时的任务不提供部分制品。
取消或超时不会生成完整制品;下一次运行沿用相同有效角色,除非主动编辑或更换来源。
参考资料
- 自备 Schema 与重命名字段问题
完整演示是单独的规范化回放:解码后重复键按最后值处理,并移除尾逗号;未改动原帖会被拒绝。按作者意图将数组规则移入 items。
- JSON Schema Draft 2020-12
背景规范;受支持的静态范围更窄,不声称完整符合性。
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
用自备 Schema 校验 JSON 实例检查自备 Draft 2020-12 约束,定位受支持规则的全部失败并保存完整报告。
检查自备 Draft 2020-12 约束,定位受支持规则的全部失败并保存完整报告。
操作步骤
- 分别提供 JSON 实例和权威 Schema。
- 为每个角色选择有效来源模式;选择文件时只显示元信息,点击运行后读取并处理。
- 执行校验,区分输入或 Schema 范围被拒绝,与已完成校验但实例无效。
- 查看实例指针和 Schema 求值路径,下载 validation-report.json 或复制完整报告。
能力与限制
- 实例最多 1 MiB、50,000 值节点和 64 层;Schema 最多 128 KiB、5,000 节点、32 层和 1,000 个 Schema 位置。根节点深度为零。
- 固定 Draft 2020-12 静态子集:类型、const/enum、必填与依赖、属性与数组、数值与字符串约束、组合规则,以及无环的同文档 JSON Pointer 引用。未知或不支持的关键词会中止任务。
- 所有 JSON 数值原文的数学值须为整数,且位于 ±9,007,199,254,740,991 内。1.00 等精确整数写法可用;小数和发生不安全舍入的数值被拒绝。
- 平面 ECMA262-u 模式最多 128 个 UTF-8 字节,支持字面字符、字符类、锚点、点号和简单量词。拒绝分组、选择、反向引用及 f/n/r/t/v 之外的字母简写转义;不获取远程引用,不支持 anchor、动态引用、unevaluated、format 或自定义代码。
- 不支持的词汇表/content 关键词、$anchor/$dynamicAnchor/$dynamicRef、unevaluated、format、嵌套 $id、远程或百分号/锚点引用,以及递归本地引用都会拒绝任务;此静态范围不表示完整 Draft 2020-12 符合性。
- 验证与深比较合计最多 2,000,000 次调用;尝试生成的不同诊断最多 20,000 条,其紧凑内容合计最多 8 MiB。完整报告最多 8 MiB。超出任一限制会拒绝全部结果。
- Schema 位置的 JSON Pointer 路径累计最多 8 MiB;构造路径前检查位置数量与路径字节。语法有效但超过预处理容量的 Schema 会整体拒绝。
- 每个角色选择粘贴内容或恰好一份 UTF-8 文件;改用粘贴时先清除所选文件。空文件或无效文件不会回退到隐藏的粘贴内容。文件名标签最多 512 个 UTF-8 字节。
- 移除并记录一个开头 BOM,粘贴输入亦如此。拒绝无效 UTF-8、解码后重复的 JSON 键和不成对的 Unicode 代理字符;输入在本浏览器处理。
- 整个任务固定 10 秒时限或取消后不提供部分制品。修正输入后重试,每次任务使用新 Worker。
- 完整报告保留每条诊断,包括父级包装诊断与重复的四字段条目。keywordLocation 是包含本地引用转换的求值路径,并非解析后的绝对源指针;技术错误原文保持不变。
- 文件内容仅在点击运行后读取,与引擎加载、检查和处理共用固定的整个 10 秒任务期。取消或超过任一上限时,不发布部分复制或下载;输入仅留在当前标签页的有界内存中。
- 屏幕采用有界预览;完整复制和下载保留全部诊断、有序匹配项与来源身份。文件与名称在本地处理,不上传内容,不抓取远程引用。