接口 data 满屏反斜杠,怎么展开?
联调接口时,你是不是也遇到过这种情况:响应里 data 一长串,到处是 \",看起来像复制坏了,其实往往没坏------是 JSON 又套了一层。
外层长这样:
json
{
"code": 0,
"message": "ok",
"data": "{\"orderId\":\"20260518001\",\"amount\":128.5,\"paid\":true}"
}
注意 data 后面跟的是 带引号的一整段文字 ,不是直接跟 {。支付回调、开放平台、老网关里挺常见的:业务数据先序列化成字符串,再塞进外层对象。标准 JSON 里字符串内部的引号本来就要写成 \",所以满屏反斜杠有时反而是 合法语法,只是人眼读起来费劲。
两步就能看清
第一步 :整段响应先格式化一遍。
我用的是 鸽鸽工具网的 JSON 格式化,浏览器里打开就能用,粘贴后点「格式化」。如果这一步就报错,多半和「套娃」无关------中文逗号、尾随逗号、键名没加双引号这类问题先排。
第二步 :看 data 是对象还是字符串。
- 格式化后,
data下面能直接展开orderId、amount→ 没有二次解析,看这一层就行。 - 如果
data旁边只有一串字符、没有子字段 → 把 这一串的值 单独复制出来(别带data:,也尽量去掉最外面那对引号),再格式化一次。第二次过了,业务字段才会真正展开。
需要发给同事或写进文档、网关又要单行时,内层整理干净后再压缩,比手删换行省事,也不容易漏逗号。
别和这几种情况搞混
- 报错里有
<:很可能粘到的是 HTML 登录页或 502,先看状态码和 Content-Type。 - 开头是
Unexpected token o:常见是粘到了[object Object],要从 Response 原文复制,别从控制台预览里抄。 - 键名、逗号报错:可能是 JS 对象、JSON5、Python dict,得先改成标准 JSON。
日志特别大时,别一次全贴,先截含 data 的那一段,分两次解析,浏览器不容易卡。
展开后时间戳也别瞎猜
内层里如果有 createdAt: 1716000000 这种 10 位或 13 位数字,别凭感觉换算。可以用 Unix 时间戳换算 对照一下是秒还是毫秒------我见过 JSON 语法全对、时间却差好几个小时的,其实是单位搞错了。
小结
data 满屏 \" 时,先想两件事:外层 JSON 合不合法?内层是不是被当成字符串包了一层?
外层过了,再把内层单独解析一次;两层都过,才算真正把载荷展开。
联调、写 Webhook 文档、整理配置片段时,我一般会开个 JSON 格式化页面随手贴一下。含 Token、手机号、订单号的内容记得先脱敏------在线工具再怎么说本地解析,敏感数据也别往公网环境里扔。
#json在线解析# #data是字符串# #json转义# #二次json# #jsonformatter# #jsonvalidator# #json格式化工具# #接口返回# #在线工具# #鸽鸽工具网#