用安卓內建的原生方法解析從webservice擷取的json資料

來源:互聯網
上載者:User

標籤:



研究了oschina,擷取的資訊都是用xml的,感覺沒json那麼好,解析太複雜迴圈啥的,還有xml相對於json來說太多了,麻煩。

之前試過用geon還有fastjson但是老是報錯。還是用原生內建的json方法。這裡我來接受一組json資料

譬如我們想要擷取一堆人員資訊,

[  {"username":"馬暈","company":"albaba"},  {"username":"劉強西","company":"jingdong"},  {"username":"馬花疼","company":"qq"},  {"username":"李豔紅","company":"baidu"}]

上面這些是一組人員的資訊 有兩個欄位 名字和所在公司

這裡我們根據我們獲得的資料進行映射:產生一個人員類實體

public class User implements Serializable {private String username;private String company;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}}

到這裡 我們怎麼把上面的json組資料轉換成 一個人員組呢,我們這裡可以用到List<User> 來把獲得的json資料

那我們在做一個UserList的實體類 用來轉換json資料為了對象組

public class UserList implements Serializable {private List<User> userList= new ArrayList<User>();//資訊組的人員的總人數private int usersCount;public int getUsersCount() {return  usersCount;}public List<User> getUserList() {return userList;}    //解析json並轉化成對象組public static UserList parse(JSONArray obj) throws JSONException {UserList list = new UserList();if(null != obj){//擷取對象組長度作為總人數list.usersCount = obj.length();for(int i=0;i<obj.length();i++){JSONObject userJson = obj.getJSONObject(i);User user = new User();user.setUsername(userJson.getString("username"));user.setCompany(userJson.getString("company"));list.userList.add(user);}}return list;}}

上面的解析參數是一個json對象組,到這裡就可以很簡單了,

String usersString = "[  {"username":"馬暈","company":"albaba"},  {"username":"劉強西","company":"jingdong"},  {"username":"馬花疼","company":"qq"},  {"username":"李豔紅","company":"baidu"}]";

假如我們獲得的json資料是一個字串,一般都是字串,然後我們用java內建的方法進行轉換成JSONArray

/** * 字串轉JSON *  * @param json * @return * @throws JSONException */public static JSONArray toJSONArray(String json) throws JSONException {return new JSONArray(json);}

我們還為此寫了一個把string轉換成JSONArray的方法。

寫到這裡 就不寫了 是不是很簡單 希望給大家一個 拋磚引玉.



用安卓內建的原生方法解析從webservice擷取的json資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.