Android网络编程---从服务器端获取JSON数据

JSON:JavaScript对象表示法

JSON是存储和交换文本信息的语法,类似XML
JSON比XML的优势,更小,更快,更易解析
更小:意味着访问它的流量少
更快:意味着访问速度快
更易解析;意味着开发方便


json格式:数组[] 对象{} 其中数组里面包含对象;一个对象有多个子对象用数组[]
[{"animals":
[{"dog":
{"id":"1","name":"benben","age":"12"}},
{"cat":
{"id":"2","name":"cc","age":"11"}},
{"pig":
{"id":"3","name":"pp","age":"10"}}]
}];

public void goJson(View view){
String path = "http://192.168.48.1:8080/lcj/animal.js";
getJson(path);
}


private void getJson(String path) {
AsyncHttpClient client = new AsyncHttpClient();
client.get(path, new TextHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers,
String responseString) {
List list = parserJson(responseString);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName());
}
}
@Override
public void onFailure(int statusCode, Header[] headers,
String responseString, Throwable throwable) {
}
});


}
/**
* 解析JSON数据
* @param responseString
* @return
*/
private List parserJson(String responseString) {
List list = new ArrayList();
Animal animal = null;
try {
//将字符串封装成一个JsonArray
JSONArray array = new JSONArray(responseString);
//遍历array数组
for (int i = 0; i < array.length(); i++) {
JSONObject obj = array.getJSONObject(i);
String id = obj.getString("id");
String name = obj.getString("name");
int age = obj.getInt("age");
animal = new Animal(id, name, age);
list.add(animal);
}
} catch (JSONException e) {
e.printStackTrace();
}
return list;
}

解析json数据:
·把字符串封装成一个JSONArray
·遍历JSONArray
·得到每一个JSONObject
·获取每个JSONObject中的数据,封装成自己需要的对象;



你可能感兴趣的:(android网络编程)