DataBean.java:css
package com.heqiang.testactivity; public class DataBean{ private String name; private String url; private String summary; private long id; public DataBean() { } public DataBean(long id, String name, String url, String summary) { this.id = id; this.name = name; this.url = url; this.summary = summary; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public long getId() { return id; } public void setId(long id) { this.id = id; } }
ResponseBean.java:html
package com.heqiang.testactivity; public class ResponseBean { private int code; private String message; private Value value; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Value getValue() { return value; } public void setValue(Value value) { this.value = value; } public static class Value { private String data; private boolean flag; public Value() { } public Value(String data, boolean flag) { this.data = data; this.setFlag(flag); } public String getData() { return data; } public void setData(String data) { this.data = data; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } } }
private void testFastJson(){ String data = "{\"code\":200,\"message\":\"\",\"value\":{\"flag\":true,\"data\":[{\"url\":\"http://www.baidu.com\",\"id\":1,\"name\":\"百度\",\"summary\":\"搜索引擎\"},{\"url\":\"http://www.sina.com\",\"id\":2,\"name\":\"新浪\",\"summary\":\"門戶站點\"},{\"url\":\"http://www.qq.com\",\"id\":3,\"name\":\"騰訊\",\"summary\":\"社交網絡\"},{\"url\":\"http://www.taobao.com\",\"id\":4,\"name\":\"淘寶\",\"summary\":\"購物站點\"}]}}"; ResponseBean reponse = JSON.parseObject(data, ResponseBean.class); if(reponse != null && reponse.getCode() == 200 && reponse.getValue() != null && reponse.getValue().getData() != null){ List<DataBean> list = JSON.parseArray(reponse.getValue().getData(), DataBean.class); for (DataBean dataBean : list) { Log.d("Test", "name = "+dataBean.getName()+", url = "+dataBean.getUrl()+", id = " +dataBean.getId()+", summary = "+dataBean.getSummary()); } } }
name = 百度, url = http://www.baidu.com, id = 1, summary = 搜索引擎 name = 新浪, url = http://www.sina.com, id = 2, summary = 門戶站點 name = 騰訊, url = http://www.qq.com, id = 3, summary = 社交網絡 name = 淘寶, url = http://www.taobao.com, id = 4, summary = 購物站點
Bean中相應的set必須和Json中的字段相應。比方Json中有id字段。get方法名應該爲setId。必須是set+字段名,字段名忽略大寫和小寫,假設字段是類似的is_default,那麼set方法名應爲setIs_default。下劃線不能省略java
有一次在項目中用的時候遇到一個小插曲,不管怎麼樣解析出來的ResponseBean都沒有數據。後來才發現是默認作了代碼混淆的緣故。在proguard.flags設置對該類不作代碼混淆就可以了。android
FastJson可以很是方便的把Java的一些實例轉化爲Json字符串:json
HashMap<String, String> map = new HashMap<String, String>(); map.put("key1", "test1"); map.put("key2", "test2"); String json = JSON.toJSONString(map);