修复 LLM 输出的 JSON
AI 响应看似 JSON,但常常夹带 markdown 围栏、注释、Python 风格字面量或 JavaScript 对象语法。
LLM JSON 的常见问题
Markdown 代码围栏、注释、单引号、未加引号的键、尾随逗号,以及 Python 的 True、False、None,都可能让一个本来有用的 AI 回复无法通过严格 JSON 解析。
修复流程
把回复贴到 JSON Fix,点 Repair & Format,再点 Validate 确认输出是严格 JSON,然后再把它用在代码或 API 请求里。
隐私提示
修复完全在浏览器本地完成,因此在调试包含内部样例或私有 API 负载的 prompt 时也可以放心使用。
工具与方法
在浏览器里整理,就把 LLM 输出贴到 JSON Fix,点 Repair & Format —— 它会一次性去掉 markdown 代码围栏(```json ... ```)、尾随逗号和 Python 字面量(True/False/None)。在 Node 里,npm 包 jsonrepair 能以无依赖的方式做同样的事。
用 prompt 减少修复量
约束输出:「只回复一个 JSON 对象,不要其他文字,不要 markdown 围栏,不要解释」。如果模型支持,开启 JSON 模式或 response_format json_object —— 这从源头消除围栏和散文。在 prompt 里给出 schema(或通过 function calling)还能进一步减少多余键。
从 LLM 流式获取 JSON
在 token 还在流式输出时,JSON 按定义是不完整的 —— 闭合括号还没出现。要么缓存到响应完成再一次性 parse,要么使用容忍流式的解析器(jsonrepair、partial-json),它们会返回到目前为止最合法的前缀,这样就能边接收边渲染。
什么时候该报错而不是修复
如果这个 JSON 会触发付款、权限变更或破坏性操作,不要默默修复 —— 拒绝响应并重试,或把原始输出抛出来人工审核。修复适用于展示、调试和恢复;绝不能用于无人复核就改变系统状态的输入。
JSON 修复指南
主题中心
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
具体指南
- 如何解码 Base64 字符串(以及 JWT Payload)
- URL 编码:百分号编码查询参数与路径
- 将 YAML 转为 JSON(并避免缩进错误)
- 将 JSON 转为 CSV:把对象数组扁平化
- 将 JSON 转为 XML:根元素、属性与数组
- 将 JSON 转义为字符串字面量(并解码双重编码的 JSON)
- 修复 JSON 中的 尾随逗号
- 修复 JSON 中的单引号
- 修复 JSON 中未加引号的键
- 修复 JSON 解析错误:Expected Property Name
- JSON 与 JavaScript 对象字面量的区别
- 在发起 API 请求前校验 JSON
- JSON 格式化器 vs JSON 修复工具
- 修复 JSON Unexpected Token 错误
- JSON 转 JavaScript 对象转换器