排查指南

JSON 校验失败:逗号、引号和长订单号怎么处理

对照错误示例修复接口 JSON,并避免长数字被意外改写。

场景:接口返回能看懂,导入却报错

先复制一小段已经去掉密钥和客户数据的样本。JSON 的属性名与字符串都使用双引号,不支持注释,也不允许最后一个属性后保留逗号。浏览器控制台显示的 JavaScript 对象,不一定是合法 JSON。

错误:{'name': 'demo',}
正确:{"name": "demo"}

先校验,再格式化

把正确样本放入工具,选择 2 空格格式化。对象与数组的层级应清晰可见,输入损坏时应保留原文并显示错误。压缩只减少格式空白,不是加密。

错误定位:从原始输入修复,不覆盖源数据

本站在宽屏并排显示原始输入与结果,窄屏上下排列。处理后原文不变,复制和下载只针对结果。修改输入或输出模式后,旧结果失效,重新校验才会出现新的复制与下载入口。填入示例会替换当前输入;清空会同时移除输入与结果,请先妥善保留需要的数据。

下面是教学用的三行错误样本。把它原样放入工具后点击“校验并转换”,应报错而不是输出一个成功结果;删去 443 后面的逗号再处理,应得到包含 ports 数组的对象。

{
  "ports": [80, 443,]
}

在本次 Windows Chrome 测试中,原生解析器给出位置时,工具显示行列并选中对应字符。其他浏览器的错误文案可能不同;没有可靠位置时只显示原始错误,不猜测行列。位置以当前文本和浏览器字符串索引为准,不等同于文件的 UTF-8 字节偏移。

只有格式变化,不能代替数据校验

用以下合法样本分别做 2 空格格式化和压缩:订单号仍应是相同字符串,items 仍只有一项,qty 仍为 2,paid 仍为 false。比较字段和值,而不是只看排版是否好看。

{"orderId":"9007199254740993","items":[{"name":"demo","qty":2}],"paid":false}

本工具没有请求真实接口,也不保存输入到本地历史;语法、格式和精度测试只在本机进行。本站的“最近使用”仅记录工具名称标识,不包含这段数据。

订单号不能当普通数字处理

例如订单号 9007199254740993 超出 JavaScript 安全整数范围。应由接口源头把它定义为字符串 "9007199254740993"。本站拒绝这类不安全整数,避免输出悄悄变成另一笔订单号。小数也受双精度限制,财务数据应遵循接口约定。

重复字段与 null

{"status":1,"status":2} 的最后一个值会覆盖前一个值。应在数据源消除重复字段。null 是合法空值,undefined 不是 JSON 值;空数组 [] 与缺失字段也不是同一种状态。

验证完成的标准

工具能成功解析,关键字符串逐字一致,数据条数符合预期,再提交到测试环境。JSON 语法通过不代表业务字段、权限或签名正确。

打开对应工具

参考资料