← 全部实操指南
接口排错

接口 JSON 看着没问题,为什么解析失败?

用一段订单响应逐项检查语法、字符串标识符与数字精度;格式化完成之后,也要核对数据有没有变。

基于本站实现编写 · 更新于 2026-10-15 · 示例数据不含个人资料

先区分 JSON 与 JavaScript 对象

在浏览器控制台中能运行的对象字面量,不一定是合法 JSON。JSON 的字段名必须用双引号,字符串也不能使用单引号。注释、undefined、NaN 和尾逗号都不属于 JSON。

本站工具通过 JSON.parse 解析,再用 JSON.stringify 输出。它适合检查接口载荷,不是 JavaScript 执行器,也不会替你猜测并修复错误字段。

拿一份小样本重现问题

将下面数据贴入 JSON 工具。它应该提示解析失败。先删除最后一个字段后的逗号,再执行格式化。此时会得到包含 orderId、amount、paid 的对象。

不要为了让解析成功就全局替换单引号。像客户备注中的撇号可能是业务内容,应从生成数据的一端修复序列化逻辑。

{"orderId":"9007199254740993","amount":12.5,"paid":false,}

为什么订单号一定要加引号?

9007199254740993 超出了 JavaScript 的最大安全整数范围。去掉引号后,某些解析与重新输出流程可能把它变成 9007199254740992。页面能正常显示并不表示数值保真。

将订单号、手机号、银行卡号这类不参与算术的标识符保存为字符串,还能保留前导零。金额如果需要精确记账,应使用明确的最小货币单位或十进制定点方案,不要依赖浏览器浮点数演示工具。

格式化之后应该检查什么?

格式化改变空白与缩进,也可能改变键的枚举顺序和数字表示,所以它不能保证逐字节不变。签名校验应使用协议规定的原始字节或规范化方式,不能随意将漂亮排版后的 JSON 替换请求体。

  1. 确认字段数量、字符串与布尔值类型。
  2. 核对大整数和带前导零的字段。
  3. 若需要比较原始内容,用摘要工具对两份原文计算同一算法,不把排版差异当作业务差异。
  4. 用非敏感样本复现错误,再在自己的开发环境修复正式数据。

动手核对

参考资料

发现示例或结果不一致?请通过联系与反馈提交复现步骤。本站内容是工具使用说明,不代表专业财务、医疗或法律建议。