把 LLM 给你的脏 JSON 一键洗干净:剥离 ```json 围栏、清理尾随逗号、单双引号统一、删除 JS 注释,再校验合法性。纯浏览器本地修复,不上传。
下面是 AI 经常吐出的"看起来像 JSON"的垃圾:
```json
{
name: 'Alice', // 用户名
age: 30,
tags: ['dev', 'ai',], // 尾随逗号
}
```
让大模型"输出 JSON"是自动化流程里最常见的用法,但模型的原始输出几乎从不合法:包着 ```json 代码围栏、键名不带引号、字符串用单引号、末尾挂逗号、正文里夹注释,甚至开头先来一句"Here is the JSON:"。直接 JSON.parse() 必报错,逐行手改又慢又容易漏。本工具把常见脏写法一次洗干净并校验,步骤:
{name: 1},勾上「无引号 key 加引号」;JSON.parse 校验才算真合法;一个重要边界:本工具处理的是语法级脏写法(结构能看懂但写法不合规)。如果模型把值本身写错了——比如字符串中间断行未转义、数字写成 三十——任何机械修复都无法可靠还原语义,工具会保留原样并提示人工介入。
不会。清洗与校验全在你浏览器本地执行,AI 输出里如果包含用户数据、密钥、内部接口结构,也不会离开你的设备。
模型的训练语料里 JSON 与 JavaScript 对象、带注释的配置文件混在一起,边界模糊;加上它倾向"友好输出"(加解释、套围栏)。治本方案是在 Prompt 里明确"仅输出 JSON,不要围栏不要解释"并用 JSON mode / 结构化输出功能;治标方案就是本工具,流程里加一道自动清洗。
可能。如果字符串值内部本来就含单引号(如 "It's ok"),转换会改变内容。默认策略是只转"作为字符串边界"的单引号;对精度要求高的数据,建议关掉此项改用其他清洗组合,修复后人工抽查。
报错信息里的行号和字符位就是定位起点。高频残留问题:① 字符串内未转义的 ";② 值缺失({"a": });③ 模型把 true/null 写成 True/None(Python 风格)。这三类属语义级损坏,请按报错位置手动修。
分工按"输入干净程度"划分:JSON 格式化处理本来就合法的 JSON(美化、压缩、校验);本工具处理不合法的 AI 原始输出(先洗干净再校验)。典型流程是 AI 输出 → 本工具修复 → 复制到 JSON 格式化做美化与入库。