LLM JSON修复 在线修复AI输出JSON工具
LLM JSON修复工具,一键修复ChatGPT和Claude返回的非法JSON,去除尾逗号、注释和Markdown围栏,精确定位错误位置,适合接口对接和开发。
更新于 2026-08-16
相关工具
功能特性
- Markdown 围栏剥离:自动移除 ```json ... ``` 与 ``` ... ``` 代码块,带或不带语言标注均可
- 前后说明文字剥离:剪掉 JSON 前后 AI 的闲聊文字("Here is the JSON:"、"Sure, here it is"、"Hope this helps" 等)
- 注释移除:剥离 // 行注释与 /* */ 块注释,且不会误删字符串内部的内容
- 尾随逗号修复:修复 AI 模型最爱犯的 ",}" 与 ",]" 错误,嵌套与重复场景也能处理
- 单引号转双引号:字符串感知地将 'xxx' 值与键转换为合法的双引号
- 未闭合引号补全:为截断输出末尾未闭合的字符串补上引号
- 截断检测:识别中途被截断的输出,并诚实提示重新生成而非猜测补全
- 修复步骤报告:列出每一步修复及其应用次数
- 错误定位:JSON 仍无法解析时,给出精确的行号与列号
- 实时处理:粘贴或输入时修复结果即时更新
- 一键复制:点击即可复制格式化后的修复结果
使用方法
- 1把 ChatGPT/Claude 输出的 JSON 粘贴到左侧面板:围栏、说明文字、注释与尾随逗号会随粘贴自动修复。
- 2观察状态徽章:有效 JSON / 已修复且有效 / 仍然无效 / 疑似截断的输出。
- 3阅读修复步骤列表,查看每一步是否应用以及应用次数。
- 4点击右侧面板的复制按钮,获取格式化后的修复结果。
- 5直接粘贴 ChatGPT 回复中带 ```json 代码块的内容:围栏会被自动剥离。
- 6用本工具修复 Claude 生成的、满是单引号和注释的配置文件,再放进项目里使用。
- 7判断 AI 输出是否被截断:出现截断徽章与提示时,请让模型重新生成或调大 max tokens。
- 8若 JSON 仍无法解析,根据报告中的行号与列号在你的原始输出里定位问题。
- 9使用前请核对修复结果:修复是启发式的,并非保证。
- 10随时清除输入,粘贴下一段模型输出。
常见问题
为什么 LLM 经常输出无效 JSON?
模型是一个 token 一个 token 生成文本的,所以它们会随手把 JSON 包进 Markdown 围栏、加上人类友好的注释、留下尾随逗号或使用单引号,对人来说都很好读,但严格 JSON 语法(RFC 8259)不允许。这些模式太过常见,本工具就是专门针对它们设计的。
修复可靠吗?
修复是启发式的,并非保证。它们覆盖常见的 LLM 模式(围栏、废话、注释、尾随逗号、单引号、未闭合引号),对这些场景效果良好。涉及重要数据时,请查看修复步骤报告并核对结果后再使用;拿不准就让模型重新生成。
截断的输出能恢复吗?
不能。输出被截断时,缺失的内容根本不存在,任何工具都无法可靠地凭空补出来。本校验器会检测到截断并如实告知:请重新生成输出或调大 max tokens 上限,而不是相信猜测出来的修复。
和 JSON 格式化器有什么区别?
JSON 格式化器要求输入本身就是合法 JSON,并报告严格错误。本工具专为 AI 输出打造:先容错修复常见 LLM 错误(围栏、废话、注释、尾随逗号、引号),再格式化结果,只有仍然失败时才精确定位错误。
所有单引号都会被转换吗?
只转换字符串感知的单引号:只有成对包裹内容的引号才会被当作字符串定界符。注释与说明文字会在更早的步骤中被移除,双引号字符串内部的撇号绝不会被动到。
修复会改变 JSON 的结构吗?
不会。修复纯粹是语法层面的:围栏、说明文字、注释、尾随逗号、引号风格与未闭合引号。键名、值和嵌套结构绝不会被改动或猜测,工具只是在模型已生成的内容周围恢复合法语法。
能按 schema 校验吗?
不能。本工具只做 JSON 语法校验,判断文本能否解析。检查字段类型、必填键或数据契约需要 JSON Schema 校验器,这属于另一个范畴,与本工具的语法修复无关。
什么算「疑似截断」?
修复后的文本仍无法解析,且带有明显的截断特征("..."、悬空的逗号、未闭合的引号或括号不配对),就会被标记为疑似截断。缺失闭合花括号是最常见的情况。
有没有办法让 LLM 一开始就输出合法 JSON?
大部分可以。最有效的做法:明确要求只输出 JSON(「respond with raw JSON, no markdown, no comments」);尽可能使用 API 的 JSON 模式(OpenAI 兼容接口用 response_format: json_object,Gemini 用 response_mime_type: 'application/json');并调低温度。这能消除大部分围栏和废话,但模型偶尔还是会留下尾随逗号或把输出包起来,长输出也照样会被截断。这正是本工具要处理的。
能从聊天对话中提取 JSON 吗?
单个 JSON 文档可以:前后说明文字("Here is the JSON:" 之类)和 Markdown 围栏会自动剥离。如果回复里包含多个 JSON 块,请分开粘贴、逐块处理;本工具假定每次输入只有一个 JSON 文档。对话里除 JSON 之外的表格、代码或其他文字,粘贴前先删掉,避免干扰。
如果 JSON 还有别的问题呢?
本工具修复上面列出的常见 LLM 问题。其他语法错误(缺少逗号、未加引号的键、括号不匹配)会给出行列位置,方便你在原始输出中手动修复。
为什么 LLM 说输出是合法的,校验器却提示 JSON 无效?
LLM 无法可靠地自我校验,它生成的是流畅的文本,不是解析器。尾逗号、多余的反引号或未转义的引号都会被模型忽略,但会违反严格的 JSON.parse。通用的排查思路是:当 llm 返回的内容不是合法 json 请检查模型 / 提示词,同时把输出放进真正的校验器(本工具或控制台里的 JSON.parse)再使用;永远不要相信模型的自评。
为什么 LLM 输出里字符串包含真正的换行时校验会失败?
JSON 字符串必须用 \n 转义换行:字符串里出现原始换行就是无效 JSON,而 LLM 为了让长值可读经常会写实际换行。本工具会自动修复这种模式。如果你自己生成 JSON,请让模型输出单行,或在生成时转义换行,这也是任何 llm-json 校验流程里的常见坑。