這裡的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 />}