大家好,今天和大家分享的是Android解析JSON。
首先和大家稍微介紹下JSON:
它是一種輕量級的資料交換格式。 易於人閱讀和編寫。同時也易於機器解析和產生。
JSON中的資料大多採用鍵/值的方式, 每個索引值用逗號隔開,如:
"鍵":"值" ,
"鍵":"值"
一個JSON檔案在Android裡解析時就是一個JSONObject,
你也可以在JSON檔案裡聲明一個內部JSONObject:
"名稱" :
{
"鍵":"值" ,
"鍵":"值"
}
聲明JSON數組的格式如下:
"JSONObject名稱":
{"JSONArray名稱":
[
{
"鍵":"值"
}
{
"鍵":"值"
}
]
}
JSON具體的介紹可以看http://www.json.org/json-zh.html
"Name":"KG" 解析:
JSONObject dataJson = new JSONObject(str);
str是你獲得的JSON代碼。
dataJson.getString("Name");
得到的就是一個字串KG了。
還比如str裡面還包含了以下語句:
"NBA":
{"Name":"加內特",
"Height":"2.11cm",
"Age":35,
}
這裡"NBA"代表的就是一個JSONObject,那我們就可以在程式中獲得這個JSONObject "NBA":
JSONObject nbaJson = dataJson.getJSONObject("NBA");
這個JSONObject裡面就包含了 "Name" "Height" "Age" 這三個屬性了,用nbaJson.getxxx("xxx")就可以得到相應的值了。
當然我們也可以解析JSON數組:
"LikeList":
{"List":
[
{"Name" : "Rose",
"Height" : "190cm",
"Age" : 23},
{"Name" : "科比",
"Height" : "198cm",
"Age" : 33}
]
}
"LikeList" 表示的也是一個JSONObject。
解析代碼如下:
JSONObject listJson = dataJson.getJSONObject("LikeList");
//獲得JSON數組
JSONArray arrayJson = listJson.getJSONArray("List");
//裡面就包含了兩個JSONObject,分別解析。
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());
}
我寫了一個執行個體,有興趣的同學可以下載看看。
http://download.csdn.net/source/3343978
今天就到這裡啦,謝謝各位!