一段会失败的真实形态
模型常把结果包在说明文字和代码围栏里。假设你收到以下响应,并把整个字符串直接交给 JSON.parse:
这是订单结果:
```json
{"order_id":"42","paid":true,}
```
第一处问题是围栏和说明文字不是 JSON;提取围栏内部以后,true 后的尾逗号仍不合法。把这段文本贴进JSON 输出检查,工具会提取唯一的代码块,但不会擅自删除逗号。这样可以看清到底是哪一层出错。
按两层校验
- 语法层:只有双引号字符串、合法数字、布尔值、
null、数组和对象。尾逗号、单引号键和undefined都会使标准 JSON 解析失败。 - 业务层:即使语法通过,
order_id可能是数字而接口要求字符串,paid可能缺失。这需要你的字段规则或 JSON Schema 另行校验;本站检查器不宣称完成了这一步。
修正产生错误的环节
若你控制模型调用,优先在请求中明确输出结构并使用服务支持的结构化输出机制;仍需在服务端对返回值做实际解析和字段校验。不要用全局字符串替换去“修复”所有逗号:逗号也可能出现在合法字符串中,粗暴替换会改变订单备注、金额或用户输入。
分享故障样例前先删掉密钥、真实姓名和订单信息。本站检查器在浏览器中处理输入,但复制到工单或群聊后就超出了本地范围。
最短复现步骤
在检查器点“载入示例”确认正常路径;再把示例 JSON 中最后一个字段后加逗号,重新检查,记录原始输入、报错和修正结果。这样留下的是可复现证据,而不只是“模型有时输出坏 JSON”的描述。