beanshell查询结果多条取满足条件的一条数据作为前置步骤给其他接口参数使用
事情是这样的,现在有一个接口需要传入一个合同编号,且合同编号在另一个接口中可以查询出来一堆数据来,那么怎么获取这个我需要满足条件的合同编号的呢?
1、调用查询接口,在返回的多条数据中,逐一遍历每一条数据,判断是否符合预期的条件,满足条件则退出循环,讲获取的字段vars.put("compact_id", compact_id);存入变量,供下一个接口直接参数化使用${compact_id}即可
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONPath; //获取请求的返回值 String response_data = prev.getResponseDataAsString(); //log.info(response_data); JSONArray jsonArray = JSON.parseArray(response_data); log.info("返回的数据条数为"); int a=jsonArray.size(); log.info(String.valueOf(a)); for(int i =1;i<=jsonArray.size();i++){ JSONObject dataObj = jsonArray.get(i-1); String compact_status = dataObj.get("compact_status"); String business_balance = dataObj.get("business_balance"); String repaid_balance = dataObj.get("repaid_balance"); String compact_id = dataObj.get("compact_id"); if(compact_status.equals("0")&&!business_balance.equals("repaid_balance")){ //vars.put(String "compact_id1",compact_id); log.info(compact_id); vars.put("compact_id", compact_id); } break; }