接口响应排查
拿到一段经过 URL 编码或 Base64 编码的接口响应:先还原,再取字段,并确认结构对不对。
支持的输入
得到的产出(全部可复制)
先跑一个真实示例
示例为无敏感信息的造造数据,输入与每步输出均用本站真实流程实测核对(2026-09-26)。按你的输入编码选一种; 进入流程页后把示例粘进「流程输入」,点「运行全部」即可复现下面的每一步。
%7B%22code%22%3A0%2C%22message%22%3A%22ok%22%2C%22data%22%3A%7B%22orderId%22%3A%22SO-2026-0926%22%2C%22status%22%3A%22PAID%22%2C%22amount%22%3A199%2C%22items%22%3A%5B%7B%22sku%22%3A%22DK-MUG%22%2C%22qty%22%3A2%7D%2C%7B%22sku%22%3A%22DK-STICKER%22%2C%22qty%22%3A1%7D%5D%7D%7D
解码后原文:{"code":0,"message":"ok","data":{"orderId":"SO-2026-0926","status":"PAID","amount":199,"items":[{"sku":"DK-MUG","qty":2},{"sku":"DK-STICKER","qty":1}]}}
- 第 1 步 · URL 解码解码为 152 B 文本
响应体被整体百分号编码过,直接当 JSON 解析会在第一个 % 处就失败。先把 %7B%22… 还原成原文。
第 1 步输出(还原后的响应体){"code":0,"message":"ok","data":{"orderId":"SO-2026-0926","status":"PAID","amount":199,"items":[{"sku":"DK-MUG","qty":2},{"sku":"DK-STICKER","qty":1}]}} - 第 2 步 · JSON 格式化(缩进 2 空格)格式化完成,19 行、265 B
一行压缩 JSON 没法人工核对字段;解析失败会给出「第 X 行第 Y 列」定位,多余逗号、单引号键这类问题在这一步暴露。
第 2 步输出{ "code": 0, "message": "ok", "data": { "orderId": "SO-2026-0926", "status": "PAID", "amount": 199, "items": [ { "sku": "DK-MUG", "qty": 2 }, { "sku": "DK-STICKER", "qty": 1 } ] } } - 第 3 步 · JSON Schema 校验校验通过,检查了 2 个节点
「能解析」不等于「结构正确」。按契约校验必填字段与类型,错误会指到 $.路径。默认 Schema 只约束顶层 code 为 integer;校验自己的契约时,把 Schema 粘进第 3 步参数即可。
第 3 步默认 Schema:
{ "type": "object", "required": ["code"], "properties": { "code": { "type": "integer" } } }第 3 步输出(格式化 JSON 原样通过,即流程输出,可复制){ "code": 0, "message": "ok", "data": { "orderId": "SO-2026-0926", "status": "PAID", "amount": 199, "items": [ { "sku": "DK-MUG", "qty": 2 }, { "sku": "DK-STICKER", "qty": 1 } ] } }
用我的数据处理
进入「接口响应校验」流程页(3 个步骤已配好):粘贴你的响应, 点「运行全部」。数据只在页面内存中传递,离开即清除。
常见失败原因
报错文案均来自真实执行器的实测运行,可直接对照| 你会看到的报错 | 出现在 | 原因与下一步 |
|---|---|---|
| URL 解码失败:存在非法的百分号编码(例如单独的 % 或 %ZZ) | URL 编码输入第 1 步 | 响应体里有单独的 % 或不完整的 %XX。可先用「URL 编解码」工具试解码,定位坏字符。 |
| JSON 解析失败:第 1 行第 26 列附近:属性名必须用双引号(常见于多余逗号或使用了单引号/无引号键) | 两种输入第 2 步 | 解码成功但不是合法 JSON:多余逗号、单引号键、内容被截断都在这里暴露,报错带行列定位,按定位回原文检查。 |
| 校验失败 · 1 个错误:$.code [required] 缺少必填字段 / $.code [type] 应为 integer,当前为 string | URL 编码输入第 3 步 | 缺 code 字段或类型不符。默认 Schema 只约束顶层 code;要校验完整契约,把你的 Schema 粘进第 3 步参数再运行。 |
| Base64 中包含非法字符 | Base64 输入第 1 步 | Base64 串混入了换行以外的不合法字符,或复制时被截断 / 拼接。重新完整复制一次再试。 |
| 匹配 0 项:检查表达式与字段名(区分大小写) | Base64 输入第 3 步 | 解码后的顶层没有 order 字段。改第 3 步的 JSONPath 表达式(如 $.result),或先看第 2 步的实际结构。 |
| JSON 转 Java 需要顶层对象;当前结果是标量或数组,请先用 JSONPath 提取出对象 | Base64 输入第 4 步 | $.order 是字符串或数组,无法生成有字段的 Java 类。先检查第 3 步的输出,再提取其中的对象。 |
数据处理说明
示例与你的数据都只在页面内存中逐级传递,不上传服务器,也不会进入 URL 或分享链接(本页不接收任何输入)。 保存在本机浏览器的只有流程配置(localStorage)与运行记录(仅状态、耗时与步骤摘要,不含输入输出); 本场景两条流程均不含密钥步骤。详见本地处理与隐私。
换个方式查结构
响应没经过编码?直接从「JSON 格式化」开始;要核对两份响应的差异,用「JSON 差异比较」。