1. 在测试计划中导入json.jar 包
2.新建一个BeanShell PostProcessor
3. 代码如下
import org.json.JSONObject; //需要在测试计划中导入包 json.jar
import org.json.JSONArray;
//获取请求返回值。注意此处只能获取到String类型;
String response_data = prev.getResponseDataAsString();
log.info("response_data------>"+response_data);
//将String类型的返回值构造成JSONObject对象,才可使用Java对象的方法对其进行操作;
JSONObject data_obj = new JSONObject(response_data);
//String StrData = data_obj.get("data").toString(); //获取响应结果中参数data值;
//Log中显示的字段顺序会与“response_data”中的字段顺序有差异,JSON串的正确与否无关字段顺序;
//log.info("StrData------>"+StrData);
JSONArray data_array = data_obj.getJSONArray("data"); //获取响应结果中参数data值; data为数组
log.info("data_array------>"+data_array.toString());
int len = data_array.length(); //获取data数组的长度
String strlen = Integer.toString(len);
log.info("strlen------>"+strlen);
String violationId_0 = "2279663"; //没有扣分的违章
for(int i = 0;i <len;i++){
JSONObject jsonTemp = (JSONObject)data_array.getJSONObject(i);
//log.info("jsonTemp------>"+jsonTemp.toString());
String violationId = jsonTemp.get("violationId").toString();
log.info("violationId_"+i+"------>"+violationId);
if(violationId.equals(violationId_0)){
log.info("jsonTemp------>"+jsonTemp.toString());
String backendId = jsonTemp.get("backendId").toString();
// String locationId = jsonTemp.get("locationId").toString();
// String violationCode = jsonTemp.get("violationCode").toString();
String realDegree = jsonTemp.get("realDegree").toString();
String fine = jsonTemp.get("fine").toString();
String cooperPoundage = jsonTemp.get("cooperPoundage").toString();
JSONArray jsonArray = new JSONArray();
JSONObject jsonObj = new JSONObject();
jsonObj.put("violationId",violationId);
jsonObj.put("backendId",backendId);
// jsonObj.put("locationId",locationId);
// jsonObj.put("violationCode",violationCode);
jsonObj.put("realDegree",realDegree);
jsonObj.put("fine",fine);
jsonObj.put("cooperPoundage",cooperPoundage);
log.info("jsonObj-->"+jsonObj.toString());
jsonArray.put(jsonObj);
log.info("jsonArray-->"+jsonArray.toString());
vars.put("violationInfos",jsonArray.toString());
break;
}else{
continue;
}
}