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

JMeter中使用JSON Extractor提取嵌套JSON原始字符串问题

嵌套JSON字段原始值提取方案

问题说明

待处理的外层JSON结构如下,其中JSON字段存储的是带转义符的JSON字符串:

{
    "id": 555,
    "name": "aaa",
    "JSON": "{\r\n  \"fake1\": {},\r\n  \"fake2\": \"bbbb\",\r\n  \"fake3\": \"eee\" \r\n}",
    "after1": 1,
    "after2": "test"
}

使用JSON Path表达式$.JSON提取时,默认配置下组件会自动识别该字段值为合法JSON,做反序列化、格式化处理,返回解析后带排版缩进的内容,丢失原始的\r\n转义换行、转义引号字符,不符合保留原始字符串的需求。
默认错误返回示例:

"{  
    "fake1": {},  
    "fake2": "bbbb",  
    "fake3": "eee"
}"

需要的目标返回值是保留所有转义字符的原始字符串:

"{\r\n  \"fake1\": {},\r\n  \"fake2\": \"bbbb\",\r\n  \"fake3\": \"eee\" \r\n}"

配置方法

根据你使用的JSON Extractor所属工具,选择对应配置即可:

  • 关闭自动解析嵌套JSON开关
    找到提取器配置面板中类似 解析嵌套JSON、反序列化字符串值、格式化JSON结果 的选项,将其设置为禁用状态,再使用$.JSON表达式提取,组件会直接返回字段存储的原始字符串,不会做二次解析处理。
  • 指定返回值类型为原始字符串
    如果提取器支持返回类型配置,不要选择「JSON对象」「结构化节点」类型,手动指定返回类型为Raw String(原始字符串),即可跳过内部JSON解析逻辑,拿到原值。
  • JMeter环境特殊配置
    如果你用的是JMeter自带的JSON Extractor,检查是否开启了额外的JSON格式化插件,默认配置下直接用$.JSON即可返回字符串原值;如果仍有格式化问题,可换用Groovy脚本提取,代码如下:
    ${__groovy(new groovy.json.JsonSlurper().parse(prev.getResponseData()).JSON,)}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:18:16