You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从带特殊转义字符的JSON响应中提取Collections值如何解决

JSON提取器无法提取Collections数组Id的解决方案

首先需要明确:你当前提供的JSON响应存在截断、语法非法两个问题,这是提取器无法正常工作的核心原因,按以下步骤排查修复即可:

  • 第一步:补全并修复JSON语法
    你贴出的响应末尾仅到"C就中断,且路径字段"ABC":"\XYZ\collection\","中的反斜杠未做转义,不符合JSON规范。JSON要求反斜杠必须转义为\\,且所有括号、引号必须闭合,你需要先拿到完整的响应体,修复上述语法问题后再做提取。
  • 第二步:使用正确的JSON提取语法
    针对合法的完整JSON结构,提取Collections数组下所有Id的通用语法为$.Collections[*].Id,不同工具的使用方式如下:
    • JMeter JSON提取器:将上述语法填入JSON Path Expression输入框,匹配规则选择匹配所有结果,即可将所有Id值存入带索引的变量中,可通过变量名_N的格式读取第N个Id
    • Python jsonpath库:调用jsonpath.jsonpath(解析后的JSON对象, "$.Collections[*].Id"),会直接返回所有Id组成的列表
    • Postman测试脚本:使用pm.response.json().Collections.map(item => item.Id)即可拿到所有Id的数组
  • 第三步:特殊场景适配
    如果服务端返回的响应始终带未转义的反斜杠,你可以先对原始响应字符串做替换处理,把所有单独的\替换为\\后再交给JSON解析器解析,再执行提取操作。

合法JSON示例参考

{
  "Version": 10,
  "Collections": [
    {"Id":"*******","Name":"","Description":null,"IsValid":false,"ABC":"\\XYZ\\collection\\","C":"测试字段值1"},
    {"Id":"abc1234","Name":"","Description":null,"IsValid":false,"ABC":"\\XYZ\\collection2\\","C":"测试字段值2"}
  ]
}

使用上述提取语法可成功提取到["*******", "abc1234"]两个Id值。

内容的提问来源于stack exchange,提问作者Prateek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:39:03