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

JMeter使用JsonPath提取器提取嵌套响应中userId值的正确语法问询

提取失败原因

你用$..ABC.response.userId无法匹配的核心原因是:响应结构里的ABC字段值是转义封装的JSON字符串,不是嵌套的JSON对象结构,JsonPath无法直接穿透字符串读取内部字段。

正确提取方案

方案1:两步JsonPath提取器实现

  • 第一步:先新增第一个JsonPath提取器,针对原始响应使用表达式$.ABC,将提取结果存为临时变量,比如命名为abc_json_str
  • 第二步:新增第二个JsonPath提取器,将abc_json_str作为待解析的JSON数据源,使用表达式$.response.userId即可成功提取userId值

方案2:单步JSR223后置处理器实现(推荐,效率更高)

直接添加JSR223 PostProcessor,使用Groovy代码一次性解析提取,无需拆分多个提取器:

import groovy.json.JsonSlurper

// 解析接口返回的原始JSON
def rawResp = new JsonSlurper().parse(prev.getResponseData())
// 把ABC字段的JSON字符串解析为JSON对象
def abcContent = new JsonSlurper().parseText(rawResp.ABC)
// 提取userId并存为JMeter变量,后续可直接通过${userId}调用
vars.put("userId", abcContent.response.userId.toString())

注意:你提供的响应示例里userId对应的user1没有加双引号,不符合标准JSON语法,如果实际响应确实如此,推荐使用方案2的Groovy解析方式,兼容性比标准JsonPath提取器更好,不会因为格式不标准报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:06:03