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

如何在JMeter中用正则表达式或JSON Path提取器解析大型JSON

在JMeter中解析JSON提取StudentID、TermID等值的方法

一、优先用JSON Path提取器(适配结构化JSON)

JSON结构明确的情况下,JSON Path比正则表达式更精准,操作步骤如下:

  1. 添加提取器:在返回目标JSON的HTTP请求节点上右键 → 添加 → 后置处理器 → JSON Path提取器。

  2. 提取TermID:

    • 引用名称:自定义变量名,比如TermID
    • JSON Path表达式:可以用全局匹配的$..TermID,或者更精准的$[3].TermID(TermID在最外层数组的第4个元素,索引从0开始计数为3)
    • 匹配数字:填1(取第一个匹配结果)
    • 默认值:填NOT_FOUND(提取失败时的备用值)
  3. 提取StudentID:

    • 提取所有StudentID:
      • 引用名称:StudentID
      • JSON Path表达式:$..StudentID
      • 匹配数字:填-1(提取全部匹配项,会自动生成StudentID_1、StudentID_2这类变量,StudentID_matchNr会返回匹配的总数量)
    • 提取单个StudentID:
      • 取第一个的表达式:$[3].Signers[0].StudentID
      • 取第二个的表达式:$[3].Signers[1].StudentID

二、用正则表达式提取器(备选方案)

如果场景限制无法使用JSON Path,可采用正则表达式提取:

  1. 添加提取器:在目标HTTP请求节点上右键 → 添加 → 后置处理器 → 正则表达式提取器。

  2. 提取TermID:

    • 引用名称:TermID
    • 正则表达式:"TermID"\s*:\s*"([^"]+)"
    • 模板:$1$(提取正则捕获组的内容)
    • 匹配数字:1
    • 默认值:NOT_FOUND
  3. 提取StudentID:

    • 提取所有StudentID:
      • 引用名称:StudentID
      • 正则表达式:"StudentID"\s*:\s*"([^"]+)"
      • 模板:$1$
      • 匹配数字:-1
    • 提取单个StudentID:匹配数字填1取第一个结果,填2取第二个结果即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:44:16