JAVA解析嵌套的JSON字串.

來源:互聯網
上載者:User

這裡的JSON串,是以飯否的Public Time Line上面的JSON格式的字串為例子的.

http://api.fanfou.com/statuses/public_timeline.json

飯否現在還是使用HTTP Basic驗證. 如果你不清楚,通過飯否的api登入並擷取資料的方法, 可以參見本人的

http://blog.csdn.net/w59879213/archive/2011/01/14/6140523.aspx

這篇文章,以飯否的API為例子, 講述了如何進行HTTP Basic驗證,並擷取回資料.

 

這裡的項目前提是, 已經擷取到了資料, 資料的字串是 json

 

Android開發的環境中已經包括了org.json的包,

但是,如果是單純建立的JAVA項目,可能並不存在org.json這個包.  可以搜尋json.jar這個檔案, 右鍵,你的JRE System Library->Build Path, 添加到你的項目中就可以了.

 

在檔案頭上加上

import org.json.JSONArray;<br />import org.json.JSONException;<br />import org.json.JSONObject;  

 

解析的步驟其實也很簡單.

首先通過JSONArray的對象獲得全部的資料的數組,

JSONArray array = new JSONArray(json);

飯否的例子, 就是所有發言的資訊.  但是飯否的每一條發言的資訊中, 都嵌套一個使用者資訊的JSON的字串. 

所以在取得每一條的發言的資訊的時候, 需要再取一次這個以user為標記的JSON字串.

 

JSONObject object = array.getJSONObject(i);<br />//擷取嵌套的JSON串<br />String users = object.getString("user");<br />//將擷取的嵌套的JSON串,再解釋一次, 得到可使用的對象.<br />JSONObject user = new JSONObject(users); 

 

 

解析過後, 就可以使用對象的getString("key")的方法來擷取對應的值了~

 

全部的代碼如下:

//獲得全部的JSON串.<br />JSONArray array = new JSONArray(json);<br />for(int i=0;i<array.length();i++)<br />{<br />/*通過列表獲得出第一條記錄的列表,包含了資訊的id,寄件者...<br />其中該列表中嵌套著另一個JSON串*/<br />JSONObject object = array.getJSONObject(i);<br />//擷取嵌套的JSON串<br />String users = object.getString("user");<br />//將擷取的嵌套的JSON串,再解釋一次, 得到可使用的對象.<br />JSONObject user = new JSONObject(users);<br />System.out.println(object.getString("id")+ ":" + user.getString("birthday"));<br />} 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.