在jMeter中使用JSON Extractor从JSON中提取嵌套JSON内容



我在另一个JSON中有JSON内容,我需要按原样提取,而不解析其内容:

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

当我使用JSON提取器与JSON路径表达式:

$.JSON

它返回:

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

当我需要获取原始字符串时:

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

我认为你需要切换到JSR223 PostProcessor而不是JSON提取器,并使用以下代码:

def json = new groovy.json.JsonSlurper().parse(prev.getResponseData()).JSON
vars.put('rawString', org.apache.commons.text.StringEscapeUtils.escapeJson(json))

您将能够在需要时将提取的值称为${rawString}

更多信息:

  • Apache Groovy -解析和生成JSON
  • Apache Groovy: Groovy是用来做什么的?
console.log(JSON.stringify(data.JSON))

这数据是你的JSON数据。首先,您必须提取JSON/data。然后必须使用JSON.stringify()对JSON数据进行字符串化。您在这里所做的令人困惑的事实是,您将JSON对象中的键命名为"JSON"。在js中,当您提取JSON对象时,如果有另一个嵌套的JSON对象,您将始终通过data.key_name获取JSON数据哪里的数据是JSON数据key为嵌套JSON键

最新更新