介绍完XML解析,怎么能不介绍下JSON解析。
根据官网(http://json.org/)介绍,JSON是一种轻量级的数据交换格式,他是很容易被读写的,也很容易被机器解析和生成。其中JSON数据是一串键值对或者一串值列表这两种数据结构组成,其中键值对的数据结构可简单表示为 {key:value,key:value,...}的形式;而值串列表则可表示为 [value,value,...]的形式。
下面是一个很简单的JSON数据:
{"日期" : "2013-12-25","Like" : {"Name" : "加内特","Height" : "2.11cm","Age" : 35},"LikeList":{"List": [{"Name" : "Rose","Height" : "190cm","Age" : 23},{"Name" : "科比","Height" : "198cm","Age" : 33}]}}
他包含了上面两种数据结构。对他的解析如下
JSONObject dataJson = new JSONObject(str);
Log.d(TAG, str);
Log.d(TAG, dataJson.getString("日期"));
JSONObject nbaJson = dataJson.getJSONObject("Like");
Log.d(TAG, nbaJson.getString("Name"));
Log.d(TAG, nbaJson.getString("Height"));
Log.d(TAG, nbaJson.get("Age").toString());
JSONObject listJson = dataJson.getJSONObject("LikeList");
JSONArray arrayJson = listJson.getJSONArray("List");
for(int i=0;i<arrayJson.length();i++) {
JSONObject tempJson = arrayJson.optJSONObject(i);
Log.d(TAG, tempJson.getString("Name"));
Log.d(TAG, tempJson.getString("Height"));
Log.d(TAG, tempJson.getString("Age").toString());
}
普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list,然后解析。