zoukankan      html  css  js  c++  java
  • Jmeter BeanShell PostProcessor提取json数据

    需求:提取sample返回json数据中所有name字段值,返回的json格式如下: 
    {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}} 
    jmeter中添加后置处理器BeanShell PostProcessor 
    这里写图片描述 
    这里写图片描述

    import org.json.*;
    
    String response_data = prev.getResponseDataAsString();
    JSONObject data_obj = new JSONObject(response_data);
    String apps_str = data_obj.get("body").get("apps").toString();
    JSONArray apps_array = new JSONArray(apps_str);
    String[] result = new String[apps_array.length()];
    for(int i=0;i<apps_array.length();i++){
        JSONObject app_obj = new JSONObject(apps_array.get(i).toString());
        String name = app_obj.get("name").toString();
        result[i] = name;
    }
    vars.put("result", Arrays.toString(result));


    JSONObject和JSONArray遍历数组与对象

    1、识别json格式字符串是JSONObject还是JSONArray

    JSON数据格式只有两种形式,分别是:

    {"key""value"//JSONObject(对象)
    [{"key1""value1"}, {"key2""value2"}] //JSONArray(数组)

    JSONObject可以用key取值,JSONArray只能遍历取值

    2、遍历json数组

    假设我们得到的json字符串result如下:

    {
       "feature":"fresh_today",
       "photos":[
          {
             "id":40581634,
             "name":"Dandelion 5"
          },
          {
             "id":40581608,
             "name":"Dandelion 3"
          }
       ]
    }

    可以看出来,最外面是个json对象,photos节点是个数组,遍历代码如下:

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
     
    JSONObject jsonObject = JSONObject.fromObject(result);
    String feature = jsonObject.getString("feature");
    JSONArray photoArray = jsonObject.getJSONArray("photos");
    for (int i = 0; i < photoArray.size(); i++) {
        JSONObject object = (JSONObject) photoArray.get(i);
        int id = object.getInt("id");
        String name = object.getString("name");
    }

     
  • 相关阅读:
    java基础学习总结——方法的重载(overload)
    java基础学习总结——哈希编码
    HDFS常用命令总结
    统计列表中有重复的元素
    url编解码
    python读取文件指定行内容
    python对接elasticsearch的基本操作
    爬虫速度太慢?来试试用异步协程提速吧!
    Python多线程的事件监控
    Python只有文件不存在才能写文件
  • 原文地址:https://www.cnblogs.com/jack1989/p/8392454.html
Copyright © 2011-2022 走看看