上一篇簡單的介紹獲取Tomcatg根目錄下的圖片,本章將繼續介紹進行與Tomcat通信獲取目錄下的jsON數據,首先在...webapps\ROOT\test目錄下放入一個JSON文件,放入
categories.json了這個文件,還是利用Xutils框架與Tomcat通信,配置請看上一篇,本章將不介紹了。
通過:
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpRequest.HttpMethod.GET, "....../test/categories.json", new RequestCallBack<String>() {
@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
}
@Override
public void onFailure(HttpException error, String msg) {
Log.d("TAG","訪問失敗");
}
利用HttpUtils框架,由於API23以上放棄Http..使用,需要在build.gradle配置下:
要加上這個配置:
useLibrary 'org.apache.http.legacy' ,否則會報異常。上述省略號將自己的電腦IP地址寫上就可以了,交互成功之后會進入
onSuccess...方法,將這個方法里進行解析JSON數據,解析數據需要知道:遇見“{}”就使用JSonObject,遇見“[]”就使用JsonArray。
RESONSEINFO={"retcode":200,"data":[{"id":10000,"title":"新聞","type":1,"children":[{"id":10007,"title":"北京","type":1,"url":"/10007/list_1.json"},{"id":10006,"title":"中國","type":1,"url":"/10006/list_1.json"},{"id":10008,"title":"國際","type":1,"url":"/10008/list_1.json"},{"id":10010,"title":"體育","type":1,"url":"/10010/list_1.json"},{"id":10091,"title":"生活","type":1,"url":"/10091/list_1.json"},{"id":10012,"title":"旅游","type":1,"url":"/10012/list_1.json"},{"id":10095,"title":"科技","type":1,"url":"/10095/list_1.json"},{"id":10009,"title":"軍事","type":1,"url":"/10009/list_1.json"},{"id":10093,"title":"時尚","type":1,"url":"/10093/list_1.json"},{"id":10011,"title":"財經","type":1,"url":"/10011/list_1.json"},{"id":10094,"title":"育兒","type":1,"url":"/10094/list_1.json"},{"id":10105,"title":"汽車","type":1,"url":"/10105/list_1.json"}]},{"id":10002,"title":"專題","type":10,"url":"/10006/list_1.json","url1":"/10007/list1_1.json"},{"id":10003,"title":"組圖","type":2,"url":"/10008/list_1.json"},{"id":10004,"title":"互動","type":3,"excurl":"","dayurl":"","weekurl":""}],"extend":[10007,10006,10008,10014,10012,10091,10009,10010,10095]}
這個是
categories.json文件下的文件內容,知道數據格式,下面就可以解析數據了。
js = new JSONObject(result);
int retcode = js.getInt("retcode");
Log.d("TAG","retcode1="+retcode);
JSONArray extend = js.getJSONArray("extend");
JSONArray data = js.getJSONArray("data");
Log.d("TAG","data="+data);
for (int i=0;i<data.length();i++){
JSONObject jsdata = data.getJSONObject(i);
Log.d("TAG","jsdata="+jsdata);
if (i==0){
int id1 = jsdata.getInt("id");
String title1 = jsdata.getString("title");
int type1 = jsdata.getInt("type");
Log.d("TAG","id1="+id1+","+"title1="+title1+"type1="+type1);
mChildrenArray = jsdata.getJSONArray("children");
Log.d("TAG","childrenArray="+mChildrenArray);
for (int j =0;j<mChildrenArray.length();j++){
JSONObject jsonObjectChlidren = mChildrenArray.getJSONObject(j);
Log.d("TAG","jsonObjectChlidren="+jsonObjectChlidren);
int id = jsonObjectChlidren.getInt("id");
Log.d("TAG","id="+id);
String title = jsonObjectChlidren.getString("title");
Log.d("TAG","title="+title);
int type = jsonObjectChlidren.getInt("type");
Log.d("TAG","type="+type);
String url = jsonObjectChlidren.getString("url");
Log.d("TAG","url12="+url);
}
}else if (i==1){
int id2 = jsdata.getInt("id");
String title2 = jsdata.getString("title");
int type2 = jsdata.getInt("type");
String url2 = jsdata.getString("url");
String url3 = jsdata.getString("url1");
Log.d("TAG","id2="+id2+","+"title2="+title2+"type2="+type2+"url2="+url2+","+"url3="+url3);
}else if (i ==2){
int id3 = jsdata.getInt("id");
String title3 = jsdata.getString("title");
int type3 = jsdata.getInt("type");
String url3 = jsdata.getString("url");
Log.d("TAG","id2="+id3+","+"title2="+title3+"type2="+type3+"url2="+url3);
}else if (i==3){
Log.d("TAG","3=");
String dayurl = jsdata.getString("dayurl");
String excurl = jsdata.getString("excurl");
int id = jsdata.getInt("id");
String title = jsdata.getString("title");
int type = jsdata.getInt("type");
String weekurl = jsdata.getString("weekurl");
Log.d("TAG","dayurl="+dayurl+","+"excurl="+excurl+"id="+id+"title="+title+"type="+type+","+"weekurl="+weekurl);
}
}
} catch (Exception e) {
e.printStackTrace();
}
這樣就可以將數據全部解析出來。解析JSoN數據還有其他方法,這就不一一介紹了,方法原理都是這樣的。