起因:做接口测试的时候经常需要对接口返回的响应数据(一般都是json字符串格式)做解析
下面是一个接口响应数据的例子:
下面是对上面接口返回的json格式字符串的解析
Object dataObj=JSONPath.read(content,"$.data"); JSONObject dataJsonObj=JSON.parseObject(dataObj.toString()); //获取key="searchResult"的值,是一个JSON数组 JSONArray searchResultArray=dataJsonObj.getJSONArray("searchResult"); //判断searchResult的元素个数是否大于等于1 if(searchResultArray.size()<1){ //报错 } //获取searchResult[0]
Object searchResult1=searchResultArray.get(0); JSONObject searchResult1JsonObj=JSON.parseObject(searchResult1.toString()); JSONArray itemsArray=searchResult1JsonObj.getJSONArray("items");
// 判断items的元素个数是否大于等于1 if(itemsArray.size()<1){ //报错 }
Object items0=itemsArray.get(0); Object businessObject=JSONPath.read(items0.toString(),"$.business"); JSONObject businessJsonObj=JSON.parseObject(businessObject.toString()); String hasAds=JSONPath.read(businessJsonObj.toString(),"$.hasAds").toString(); //判断hasAds的值 if(hasAds.equals("false")){ //... }