jmeter使用org.json处理json数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter使用org.json处理json数据相关的知识,希望对你有一定的参考价值。
参考技术A org.json版本无所谓大同小异//前4行基本是固定写法不用管他
import org.json.JSONObject;
import org.json.JSONArray;
String response_data = prev.getResponseDataAsString();// 获取返回的response
JSONObject data_obj = new JSONObject(response_data);//把获取到的json字符串转成对象
//先把最终需要获取的内容转换成对象,ps:get就是获取这个json下的数据 (json层级分明,根据层级一层层往下找即可)
JSONObject jsonObject_1 = data_obj.get("data").get("formData");
JSONObject jsonObject_1 = data_obj.get("data").get("formData");
//修改,新增直接用PUT 就可以
jsonObject_1 .put("json字段名称",1);
//使用remove即可
jsonObject_1 .remove("age");
//json中获取数组时,需要在get后面加JSONArray 最前面的也要改成JSONArray
//getJSONObject(0)代表获取第一个数组数据
JSONArray jsonObject_2 =data_obj.get("data").getJSONArray("Array");.getJSONObject(0);
JSONArray jsonObject_2 =data_obj.get("data").getJSONArray("Array");
//做一个for循环把数组里面需要修改的都修改一次
for (int i = 0; i < jsonObject_2.length(); i++)// 获取这个数组的长度进行循环
//在重新声明一个对象 (JSONObject)是强制转换的意思
JSONObject jsonTemp = (JSONObject)jsonObject_2.getJSONObject(i);
for(int i=0;i<jsonTemp.length(); i++)
//你要修改什么数据,需要获取他上一层的爸爸,然后进行操作
jsonTemp.put("field_confirm", "Y");
jsonTemp.put("field_send_quantity", "89");
import org.json.JSONObject;
import org.json.JSONArray;
String response_data = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject(response_data);
//最开始设置好你需要获取json的那一部分内容,后面的修改都基于这个变量进行修改
JSONObject JsonData = data_obj.getJSONObject("data");
JsonData.put("字段名","修改的内容");//可以加"",也可以不加 根据实际情况
//最后只需要把最开始设置的变量转成字符串即可
String NewData = JsonData .toString();
//把字符串化的设置成jmeter的变量,即可用$变量名调用
vars.put("yp_body",NewData);
使用Java从处理JSON数据
maven依赖:
<!-- https://mvnrepository.com/artifact/org.json/json --> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20171018</version> </dependency>
教程:
http://wiki.jikexueyuan.com/project/json/with-java.html
http://www.oracle.com/technetwork/articles/java/json-1973242.html
以上是关于jmeter使用org.json处理json数据的主要内容,如果未能解决你的问题,请参考以下文章