用json获取服务器端的数据

输出示例:{}表示是object对象,[]表示是一个数组,{}里面的是一个个的属性

{"pagination":{
        "countPage":4,
        "from":15,"
        nowPage":4,
        "rows":
        [
               {"id":33,"image":"Koala.jpg","name":"ppp"},
               {"id":34,"image":"Lighthouse.jpg","name":"1123"},
               {"id":35,"image":"Tulips.jpg","name":"3234"},
],
"size":5,
"total":19

}

}


test方法获得pagination中的数据:

package com.example.jd.test;
import org.apache.http.Header;
import org.json.JSONArray;
import org.json.JSONObject;
import android.os.Handler;
import android.os.Message;
import android.test.AndroidTestCase;
import com.example.jd.util.HttpUrl;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.JsonHttpResponseHandler;


public class CategoryTest extends AndroidTestCase {


	private static final int QUERY = 0;


	private Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case QUERY:
				// 创建异步请求的客户端对象
				AsyncHttpClient client = new AsyncHttpClient();


				// 发送请求
				//
classifyQuery是封装好的路径名称
				/**
				 * 商品分类查询
				 */
		//public static final String classifyQuery = "http://172.16.237.168:8080/jds/csdn/classifyAction_query.action";
//null是查询条件,可以自己定义,如params.put("user.name", "陈红军");params.put("user.pass", "123");
				//则null是params
				client.post(HttpUrl.classifyQuery, null,
						new JsonHttpResponseHandler() {


							@Override
							public void onSuccess(int statusCode,
									Header[] headers, JSONObject response) {
								super.onSuccess(statusCode, headers, response);
								try {
									//获得
pagination 


JSONObject pagination = response
.getJSONObject("pagination");

//
pagination
.getInt("size")是其中一个属性


System.out.println(pagination
.getInt("size"));
//rows后面是[],说明是一个json数组
JSONArray rows = pagination
.getJSONArray("rows");
//遍历数组,各属性的类型看说明书
for (int i = 0; i < rows.length(); i++) {
JSONObject obj = rows.getJSONObject(i);
System.out.println(obj.getInt("id")+","+obj.getString("name")+","+obj.getString("image"));
}
} catch (Exception e) {
e.printStackTrace();
}


}


@Override
public void onFailure(int statusCode, Throwable e,
JSONObject errorResponse) {
System.out
.println("------------------onFailure----------------------");
super.onFailure(statusCode, e, errorResponse);
}


});
break;


default:
break;
}
}
};

//实现
public void queryCategory() {
Message msg = new Message();
msg.what = QUERY;
handler.sendMessage(msg);
}


}

你可能感兴趣的:(安卓)