介面測試:解析JSON資料
阿新 • • 發佈:2019-02-12
接著上一個教程,介面測試:傳送post請求,這次我們來分享,如何解析json資料
public static void get() throws Exception{
responseBody = "";
String countryCode = "IN";
String url = "http://10.200.10.220/dc/v1/ts";
String aid = "zwf0425" ;
String mingWen = "{\"platform\":\"android\",\"app_version\" :\"2.0\",\"app_name\":\"com.monet.boost.max.am\",\"aid\":\""+ aid +"\",\"sdk_version\":\"1.3\"}";
String miWen = DataEn.encrypt(mingWen);
responseBody = HttpRequest.sendPost(url, miWen, countryCode);
//如果有響應資料,則呼叫解析資料的方法
if(responseBody !=null && responseBody != ""){
HttpRequest.jieXi(responseBody);
}
}
需要解析的資料【明文】如下:
{
"trackdata": [{
{
"datainfo": {
"body": "api_level=23&device_type=phone&session_count=1&app_version=2.1",
"head": "{\"Accept-Encoding\":\"gzip\"}"
},
"dataType" : "install",
"offer_id": "13141772",
"appid": "com.monet.boost.max.am",
"dataid": "100001020010224181493112705714"
}],
"clickdata": [{
"offer_id": "13141772",
"click": "http://pixel.webeyemob.com/v1/ad/click?subsite_id=30222&transact",
"appid": "com.monet.boost.max.am",
"dataid": "100001020010224181493112705714"
}]
}
jiexi()的方法如下:
/**
* 解析下發的任務
* @param responseBody
* @throws Exception
*/
public static void jieXi(String responseBody) throws Exception{
//首先需要先解密,將資料變為明文的
String ming_responseBody = DataEn.decrypt(responseBody);
Out.println("zming_responseBody : " + ming_responseBody);
//將String型別轉換成JsonObject
JSONObject jsonBody = JSONObject.fromObject(ming_responseBody);
//接下來的解析,需要一些json的基本知識,需要自行腦補啊*——*
//陣列,留存任務
JSONArray jsonArray_trackdata = jsonBody.getJSONArray("trackdata");
int len_jsonArray_trackdata = jsonArray_trackdata.size();
if(len_jsonArray_trackdata <= 0){
Out.println("trackdata為空,沒有留存任務!");
}else{
System.out.println("有 "+len_jsonArray_trackdata+" 個留存或者安裝任務!");
for (int i = 0; i < len_jsonArray_trackdata; i++) {
Out.println("dataid " + i + " :" + ((JSONObject)jsonArray_trackdata.get(i)).get("dataid"));
Out.println("dataType " + i + " :" + ((JSONObject)jsonArray_trackdata.get(i)).get("dataType"));
}
}
//陣列,點選任務
JSONArray jsonArray_clickdata = jsonBody.getJSONArray("clickdata");
int len_jsonArray_clickdata = jsonArray_clickdata.size();
if(len_jsonArray_clickdata <= 0){
System.out.println("clickdata為空,沒有點選任務!");
}else{
System.out.println("有 "+len_jsonArray_clickdata+" 個點選任務!");
for (int i = 0; i < len_jsonArray_clickdata; i++) {
String offer_id = ((JSONObject)jsonArray_clickdata.get(i)).get("offer_id").toString() ;
String data_id = ((JSONObject)jsonArray_clickdata.get(i)).get("dataid").toString() ;
Out.println("clickdata " + i + " :" + ((JSONObject)jsonArray_clickdata.get(i)).get("offer_id"));
Out.println(" appid " + i + " :" + ((JSONObject)jsonArray_clickdata.get(i)).get("appid"));
Out.println(" click " + i + " :" + ((JSONObject)jsonArray_clickdata.get(i)).get("click"));
Out.println(" dataid " + i + " :" + ((JSONObject)jsonArray_clickdata.get(i)).get("dataid"));
}
}
}
解析很簡單的,難點就是需要json的相關知識。