beanshell判断响应数据是jsonobject类型还是jsonarray类型
事情是这样的,测试一个查询接口,接口返回一条数据 {\"aaa\" : \"111\"},多条数据:[{\"aaa\" : \"111\"},{\"bbb\" : \"222\"}] 。接口不返回数据为:{},那么在有一系列前置条件下,预期查询出来的数据条数不为空,则需判断接口是否有响应数据
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSON; //获取请求的返回值 String response_data = prev.getResponseDataAsString(); log.info(response_data); Object json = JSON.parse(response_data); //判断返回数据是json对象(一条数据)还是数据(多条数据),数组判断是否有数据有数据则通过,无数据则不通过,json对象则判断是否有数据 if(json instanceof JSONObject){ log.info("对象"); JSONObject data_obj= JSON.parseObject(response_data); String stock_account=data_obj.get("stock_account"); if (stock_account.length() != 0) { Failure=false; } else { Failure=true; FailureMessage="返回数据条数预期1条,实际返回数据为空"; } } if(json instanceof JSONArray){ log.info("数组"); JSONArray jsonArray = JSON.parseArray(response_data); log.info("返回的数据条数为"); int a=jsonArray.size(); log.info(String.valueOf(a)); //log.info(jsonArray.toString()); if (jsonArray.size() != 0) { Failure=false; } else { Failure=true; FailureMessage="返回数据条数预期多条,返回数据为空"; } }