这是我的json,我想使用beanshell脚本提取名字和代码。但是我无法提取值。 请帮助
{
"code":"HNYC",
"message":"Sucess",
"data":{
"Employeid":"TGRDH-887",
"Perosonal":{
"Details":{
"firstname":"Sam",
"id":3566,
"dob":"23/11/1990",
"Yearofjoing":"2018",
"Salary":30000,
"Address":"New Delhi",
"City":"Delhi"
}
}
}
}
Beanshell代码:
import com.eclipsesource.json.JsonObject;
String jsonString = prev.getResponseDataAsString();
JsonObject accountId = JsonObject.readFrom(jsonString);
String code = accountId.getJSONObject("code");
print("value "+code);
答案 0 :(得分:1)
您可以直接从JSONObject获取code
值,因为它是JSONObject refer的属性
String code = accountId.get("code");
答案 1 :(得分:0)
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject getData = jsonObject.getJSONObject("data");
JSONObject getPerosonal = getData.getJSONObject("Perosonal");
JSONObject getDetails = getPerosonal.getJSONObject("Details");
Object firstname= getDetails.get("firstname");
System.out.println(firstname);
答案 2 :(得分:0)
首先,您了解JSON Extractor吗?如果不是,请考虑使用它,因为它提供了使用简单的JSONPath查询(例如$..code
和$.. firstname
如果您仍然想进行脚本编写,请注意since JMeter 3.1 it is recommended to use Groovy用于任何形式的脚本编写。 Groovy比Beanshell是更“现代”的语言,它支持所有Java新功能,并且在Java SDK上有很多enhancements
其中之一是通过JsonSlurper类的内置JSON支持,因此您可以将代码缩短为:
def json = new groovy.json.JsonSlurper().parseText(prev.getResponseDataAsString())
String code = json.code
log.info(code)
演示:
更多信息: