LLM JSON 输出校验器

粘贴 JSON Schema 和 LLM 回复,即可看到每个校验错误的 JSON 路径和行号。代码块、末尾逗号、单引号或弯引号、注释和 Python 的 True/None 会先修正。校验在浏览器中用 Ajv 8.20.0(draft-07、2019-09、2020-12)完成。

    全部在浏览器中处理,不保存也不发送。

    问题解决了吗?

    使用方法

    1. 在左侧粘贴 JSON Schema。带 name 和 schema 的 OpenAI response_format 对象会自动取出内层。
    2. 在右侧原样粘贴模型输出,外面带代码块或说明文字也没关系。
    3. 查看结果。每个错误显示行号和列号(点击跳到该处)、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 使用。