android学习之路7:json数据的操作
目前网络传输的数据格式主要有xml和json两种类型,而json作为”后起之秀“,被运用的越来越广泛,大米认为json数据不管是在跨平台,网络传输解析,程序操作json数据等方面来讲都比xml更加方便,所以我更加倾向于使用json数据进行网络传输,android应用中使用json也是相当的简单,java提供了我们org.json.* api,操作变得相当的简单,下面直接上图,上关键代码,上demo源代码:
主界面:
点击获取一个对象按钮,log端输出:
点击获取全部对象按钮,log端输出:
关键代码:
json数据源为一个json形式的字符串:
//定义json字符串,当然你也可以通过http或者sokect获取到
private String jsonDataWithNotName = "{\"personlist\": [{\"id\":\"1\",\"name\":\"大米\",\"speciality\":\"计算机科学与技术\",\"qq\":111111111}," +
"{\"id\":\"2\",\"name\":\"小米\",\"speciality\":\"软件工程\",\"qq\":22222222}," +
"{\"id\":\"3\",\"name\":\"小小米\",\"speciality\":\"网络工程\",\"qq\":33333333}]}";
获取全部json对象的代码:
btn_all.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
JSONArray arr=new JSONObject(jsonDataWithNotName).getJSONArray("personlist");
for (int i = 0; i < arr.length(); i++) {
JSONObject obj=(JSONObject) arr.get(i);
if(null!=obj){
Log.e("获取全部json对象", "编号:"+obj.getString("id")+
"姓名:"+ obj.getString("name")+"专业"+obj.getString("speciality")
+"qq号码:"+obj.getString("qq"));
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});