LLM JSON 输出校验器
粘贴 JSON Schema 和 LLM 回复,即可看到每个校验错误的 JSON 路径和行号。代码块、末尾逗号、单引号或弯引号、注释和 Python 的 True/None 会先修正。校验在浏览器中用 Ajv 8.20.0(draft-07、2019-09、2020-12)完成。
使用方法
- 在左侧粘贴 JSON Schema。带 name 和 schema 的 OpenAI response_format 对象会自动取出内层。
- 在右侧原样粘贴模型输出,外面带代码块或说明文字也没关系。
- 查看结果。每个错误显示行号和列号(点击跳到该处)、JSON 路径和问题内容。若先做了清理,会列出修正项,清理后的 JSON 可直接复制。
计算方法
先按原样解析输出。失败时,工具去掉模型最常出的问题后再试:Markdown 代码块、JSON 前后的文字、BOM、弯引号、单引号字符串、// 和 /* */ 注释、末尾逗号,以及 Python 的 True、False、None。字符串内部的内容从不改动。
用广泛使用的 JSON Schema 校验器 Ajv 8.20.0 检查,只在你粘贴内容时才加载。$schema 字段写明 2020-12 或 2019-09 时用对应草案,否则用 draft-07。报告全部错误,而不只是第一个。
不检查 format 关键字(email、date-time 等),也不下载远程 $ref 链接。
你粘贴的内容不会保存、发送或写进页面地址。
LLM 最常犯的错误
| 问题 | 示例 | 自动修正 |
|---|---|---|
| 代码块 | ```json { ... } ``` | 是 |
| JSON 前后有文字 | Sure! Here it is: { ... } | 是 |
| 末尾逗号 | {"a": 1,} | 是 |
| 单引号或弯引号 | {'a': 'b'} | 是 |
| 缺少必填字段 | {"title": "x"} | 否,报告 |
| 类型错误 | "rating": "5" | 否,报告 |
| 多余字段 | additionalProperties 为 false 时出现 "author": "x" | 否,报告 |
一开始就拿到有效输出
- 能用时就用服务商的结构化输出模式。OpenAI 的 strict json_schema 和 Anthropic 的 structured outputs 会把模型输出约束在 Schema 内。
- strict 模式要求所有属性都列入 required,且 additionalProperties 为 false。请确认你的 Schema 符合这些规则。
- 不用 strict 模式解析模型输出时,保留类似这里的清理步骤,并在信任数据前先校验。
常见问题
看起来没问题的 JSON 为什么解析失败?
常见原因是最后一项后面多了逗号、JSON 外面包着代码块,或从聊天窗口带来的弯引号。本工具会修正并告诉你改了什么。
支持哪些 JSON Schema 草案?
默认 draft-07,$schema 字段写明时也支持 2019-09 和 2020-12。
我的数据会上传吗?
不会。解析和校验都在浏览器里完成,文本不会保存,也不会写进 URL。
可以直接粘贴 OpenAI 的 response_format 对象吗?
可以。带 name 和 schema 的对象,或带 json_schema.schema 的对象,会自动取出内层 Schema 使用。