Android 中對JSON數(shù)據(jù)解析實(shí)例代碼
Android 中對JSON數(shù)據(jù)解析
在Android的網(wǎng)絡(luò)編程中,JSON是比XML使用更為廣泛的數(shù)據(jù)傳輸機(jī)制。在許多的http網(wǎng)絡(luò)請求或接口調(diào)用中,返回的很多都是JSON。所以學(xué)會(huì)解析JSON是學(xué)會(huì)Android的基本技能。
簡單介紹下JSON,JSON是輕量級(jí)的文本數(shù)據(jù)交換格式,獨(dú)立于語言和平臺(tái)。比XML更小,更快,更易解析。JSON是用鍵值對來保存數(shù)據(jù)的。JSON保存的值可以是數(shù)字、字符串、布爾值、數(shù)組和對象。
廢話少說,直接上代碼。下面對以下JOSN進(jìn)行解析:
{
"language":[
{
"id":1,
"name":"Java",
"ide":"Eclipse"
},
{
"id":2,
"name":"C++",
"ide":"Visual Studio"
}
]
}
在該實(shí)驗(yàn)中,是把該JSON保存為language.json文件并放置在assets文件夾下。在實(shí)際的項(xiàng)目開發(fā)中,JSON一般是http請求后由服務(wù)器返回的。具體實(shí)現(xiàn)代碼如下:
try {
InputStreamReader inputStreamReader = new InputStreamReader(getAssets().open("languages.json"), "UTF-8");//使用utf-8的編碼方式讀取json;并新建該輸入流;
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);//使用BufferReader讀取輸入流中的數(shù)據(jù);
String line;
StringBuilder stringBuilder = new StringBuilder();//所有讀取的json放到StringBuilder中,這里也可以使用StringBuffer,效果一樣;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
bufferedReader.close();//按相反的順序關(guān)閉流;
inputStreamReader.close();
//以下開始進(jìn)行json解析;
JSONObject language = new JSONObject(stringBuilder.toString());//每一個(gè){}花括號(hào)的內(nèi)容就是一個(gè)JSON對象;
JSONArray array = language.getJSONArray("language");//獲取language這個(gè)對象里面的JSON數(shù)組,因?yàn)槊恳粋€(gè)[]中括號(hào)的內(nèi)容就是一個(gè)JSON數(shù)組,數(shù)組內(nèi)可能包含多個(gè)JSON對象;
for (int i = 0; i < array.length(); i++) {//循環(huán)遍歷該數(shù)組;
JSONObject item = array.getJSONObject(i);//建立數(shù)組中的對象;
text.append(item.getInt("id") + " " + item.getString("name") + " " + item.getString("ide"));//根據(jù)鍵值對獲取屬性值;
text.append("\n");
}
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
程序運(yùn)行后,截圖如下:

至此,已經(jīng)成功完成對JSON字符串的解析。個(gè)人對XML解析和JSON解析的理解就像是剝洋蔥,是一層一層往里面進(jìn)行解析,只要搞清楚邏輯關(guān)系,就不會(huì)有問題。JSON有時(shí)候會(huì)碰到3層,4層的循環(huán)嵌套,會(huì)比較麻煩,只要按照步驟進(jìn)行,就不會(huì)出錯(cuò)。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- Android編程簡單解析JSON格式數(shù)據(jù)的方法示例
- Android使用OKHTTP解析JSON數(shù)據(jù)的實(shí)例代碼
- android JSON解析數(shù)據(jù) android解析天氣預(yù)報(bào)
- Android解析json數(shù)據(jù)示例代碼(三種方式)
- Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對獲取的json數(shù)據(jù)進(jìn)行解析的方法
- Android之解析JSON數(shù)據(jù)示例(android原生態(tài),F(xiàn)astJson,Gson)
- Android json數(shù)據(jù)解析詳解及實(shí)例代碼
- Android系列---JSON數(shù)據(jù)解析的實(shí)例
- Android利用Gson解析嵌套多層的Json的簡單方法
- Android M(6.x)使用OkHttp包解析和發(fā)送JSON請求的教程
- Android解析JSON數(shù)據(jù)的方法分析
- Android json解析及簡單例子
- android解析JSON數(shù)據(jù)
- Android中g(shù)son、jsonobject解析JSON的方法詳解
- Android解析json數(shù)組對象的方法及Apply和數(shù)組的三個(gè)技巧
- Android隨手筆記44之JSON數(shù)據(jù)解析
- Android學(xué)習(xí)筆記45之gson解析json
- android原生JSON解析實(shí)例
相關(guān)文章
Android使用SmsManager實(shí)現(xiàn)短信發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了Android使用SmsManager實(shí)現(xiàn)短信發(fā)送功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Android開發(fā)筆記之:Splash的實(shí)現(xiàn)詳解
本篇文章是對Android中Splash的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Android使用OKhttp3實(shí)現(xiàn)登錄注冊功能+springboot搭建后端的詳細(xì)過程
這篇教程主要實(shí)現(xiàn)Android使用OKhttp3實(shí)現(xiàn)登錄注冊的功能,后端使用SSM框架,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-07-07
Android?ViewModel創(chuàng)建不受橫豎屏切換影響原理詳解
這篇文章主要為大家介紹了Android?ViewModel創(chuàng)建不受橫豎屏切換影響原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Android原生定位服務(wù)LocationManager
這篇文章主要為大家介紹了Android原生定位服務(wù)LocationManager實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Android實(shí)現(xiàn)簡易登陸注冊邏輯的實(shí)例代碼
在android的應(yīng)用中越來越多的包含了網(wǎng)絡(luò)互動(dòng)功能,這就帶來了注冊,登陸賬號(hào)功能,這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)簡易登陸注冊邏輯的相關(guān)資料,需要的朋友可以參考下2021-06-06
android文件操作——讀取assets和raw文件下的內(nèi)容
本篇文章主要介紹了android文件操作——讀取assets和raw文件下的內(nèi)容,并附簡單實(shí)例代碼,需要的朋友可以參考下。2016-10-10
Android studio實(shí)現(xiàn)PopupWindow彈出框效果
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)PopupWindow彈出框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

