欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 中對(duì)JSON數(shù)據(jù)解析實(shí)例代碼

 更新時(shí)間:2017年03月30日 10:23:28   投稿:lqh  
這篇文章主要介紹了Android 中對(duì)JSON數(shù)據(jù)解析實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

Android 中對(duì)JSON數(shù)據(jù)解析

 在Android的網(wǎng)絡(luò)編程中,JSON是比XML使用更為廣泛的數(shù)據(jù)傳輸機(jī)制。在許多的http網(wǎng)絡(luò)請(qǐng)求或接口調(diào)用中,返回的很多都是JSON。所以學(xué)會(huì)解析JSON是學(xué)會(huì)Android的基本技能。

        簡(jiǎn)單介紹下JSON,JSON是輕量級(jí)的文本數(shù)據(jù)交換格式,獨(dú)立于語(yǔ)言和平臺(tái)。比XML更小,更快,更易解析。JSON是用鍵值對(duì)來(lái)保存數(shù)據(jù)的。JSON保存的值可以是數(shù)字、字符串、布爾值、數(shù)組和對(duì)象。

        廢話(huà)少說(shuō),直接上代碼。下面對(duì)以下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)目開(kāi)發(fā)中,JSON一般是http請(qǐng)求后由服務(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(); 
 
  //以下開(kāi)始進(jìn)行json解析; 
  JSONObject language = new JSONObject(stringBuilder.toString());//每一個(gè){}花括號(hào)的內(nèi)容就是一個(gè)JSON對(duì)象; 
  JSONArray array = language.getJSONArray("language");//獲取language這個(gè)對(duì)象里面的JSON數(shù)組,因?yàn)槊恳粋€(gè)[]中括號(hào)的內(nèi)容就是一個(gè)JSON數(shù)組,數(shù)組內(nèi)可能包含多個(gè)JSON對(duì)象; 
  for (int i = 0; i < array.length(); i++) {//循環(huán)遍歷該數(shù)組; 
    JSONObject item = array.getJSONObject(i);//建立數(shù)組中的對(duì)象; 
    text.append(item.getInt("id") + " " + item.getString("name") + " " + item.getString("ide"));//根據(jù)鍵值對(duì)獲取屬性值; 
    text.append("\n"); 
  } 
} catch (IOException e) { 
  e.printStackTrace(); 
} catch (JSONException e) { 
  e.printStackTrace(); 
} 

程序運(yùn)行后,截圖如下:

      至此,已經(jīng)成功完成對(duì)JSON字符串的解析。個(gè)人對(duì)XML解析和JSON解析的理解就像是剝洋蔥,是一層一層往里面進(jìn)行解析,只要搞清楚邏輯關(guān)系,就不會(huì)有問(wèn)題。JSON有時(shí)候會(huì)碰到3層,4層的循環(huán)嵌套,會(huì)比較麻煩,只要按照步驟進(jìn)行,就不會(huì)出錯(cuò)。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論