第一步註冊: compile 'com.google.code.gson:gson:2.6.2'java
第二步初始化:json
Gson gson = new GsonBuilder() .setLenient()// json寬鬆 .enableComplexMapKeySerialization()//支持Map的key爲複雜對象的形式 .serializeNulls() //智能null .setPrettyPrinting()// 調教格式 .disableHtmlEscaping() //默認是GSON把HTML 轉義的 .create();
1.簡單json解析:api
[{username:"arthinking",userId:"001"},{username:"Jason",userId:"002"}];ui
public class User { private String username ; private int userId ; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } }
解析:this
Type listType = new TypeToken<LinkedList<User>>(){}.getType(); Gson gson = new Gson(); LinkedList<User> users = gson.fromJson(jsonData, listType); for (Iterator iterator = users.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); System.out.println(user.getUsername()); System.out.println(user.getUserId()); }
複雜一點的jsongoogle
{ "data": { "partnerteamlist": [ { "pteamId": 72825, "ptitle": "隨攝影/共6套服裝/準爸準媽共拍/免費肚畫/底片全送。", "pteamprice": 288 }, { "pteamId": 72598, "ptitle": "隨攝影/拍攝200張/4本相冊/品質拍攝/送全新婚紗。", "pteamprice": 2888 }, { "pteamId": 72613, "ptitle": "隨攝影/送全新婚紗/多外景拍攝/服裝不限數量/絕無二次消費!", "pteamprice": 3699 }, { "pteamId": 72638, "ptitle": "隨攝影/服裝不限數量/高品質拍攝260張/送全新婚紗。", "pteamprice": 4299 }, { "pteamId": 72716, "ptitle": "隨攝影/3組服裝造型/內外景拍攝/徹底透明消費!", "pteamprice": 388 } ], "liketeamlist": [ { "lteamId": 65886, "ltitle": "愛麗爾婚紗攝影/2本相冊/6套服裝造型/拍攝不限最低拍攝150張。", "limage": "http://img.pztuan.com/upfile/team/2013/0712/201307120257551465.jpg", "lteamprice": 518, "lmarketprice": 3999 }, { "lteamId": 57133, "ltitle": "陶冶攝影/婚紗閨蜜/6組服裝造型/拍攝不低於120張!", "limage": "http://img.pztuan.com/upfile/team/2013/0628/201306281115249737.jpg", "lteamprice": 580, "lmarketprice": 3380 } ], "feedbacks": { "feedbacklist": [ { "comment": "5分", "createtime": "2014.07.08 13:38", "score": 5, "username": "l***2" } ], "totalcount": 1, "totalscore": 5 } }, "err": null, "state": 1 }
解析model:code
import java.util.List; public class OtherDetail { private int state; private List<err> err; private OtherDetail2 data; public int getState() { return state; } public void setState(int state) { this.state = state; } public List<err> getErr() { return err; } public void setErr(List<err> err) { this.err = err; } public OtherDetail2 getData() { return data; } public void setData(OtherDetail2 data) { this.data = data; } public class OtherDetail2 { private List<partnerteamlist> partnerteamlist; private List<liketeamlist> liketeamlist; private List<feedbacks> feedbacks; public List<liketeamlist> getLiketeamlist() { return liketeamlist; } public void setLiketeamlist(List<liketeamlist> liketeamlist) { this.liketeamlist = liketeamlist; } public List<feedbacks> getFeedbacks() { return feedbacks; } public void setFeedbacks(List<feedbacks> feedbacks) { this.feedbacks = feedbacks; } public class partnerteamlist { private int pteamId; private String ptitle; private Double pteamprice; public int getPteamId() { return pteamId; } public void setPteamId(int pteamId) { this.pteamId = pteamId; } public String getPtitle() { return ptitle; } public void setPtitle(String ptitle) { this.ptitle = ptitle; } public Double getPteamprice() { return pteamprice; } public void setPteamprice(Double pteamprice) { this.pteamprice = pteamprice; } } public class liketeamlist { private int lteamId; private String ltitle; private String limage; private Double lteamprice; private Double lmarketprice; public int getLteamId() { return lteamId; } public void setLteamId(int lteamId) { this.lteamId = lteamId; } public String getLtitle() { return ltitle; } public void setLtitle(String ltitle) { this.ltitle = ltitle; } public String getLimage() { return limage; } public void setLimage(String limage) { this.limage = limage; } public Double getLteamprice() { return lteamprice; } public void setLteamprice(Double lteamprice) { this.lteamprice = lteamprice; } public Double getLmarketprice() { return lmarketprice; } public void setLmarketprice(Double lmarketprice) { this.lmarketprice = lmarketprice; } } public class feedbacks { private int totalcount; private Double totalscore; private List<feedbacklist> feedbacklist; public int getTotalcount() { return totalcount; } public void setTotalcount(int totalcount) { this.totalcount = totalcount; } public Double getTotalscore() { return totalscore; } public void setTotalscore(Double totalscore) { this.totalscore = totalscore; } public List<feedbacklist> getFeedbacklist() { return feedbacklist; } public void setFeedbacklist(List<feedbacklist> feedbacklist) { this.feedbacklist = feedbacklist; } public class feedbacklist { private String username; private String comment; private String createtime; private Double score; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public Double getScore() { return score; } public void setScore(Double score) { this.score = score; } } } public List<partnerteamlist> getPartnerteamlist() { return partnerteamlist; } public void setPartnerteamlist(List<partnerteamlist> partnerteamlist) { this.partnerteamlist = partnerteamlist; } } public class err { private int code; private String msg; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } }
gson使用對象
Gson gson = new Gson(); OtherDetail d = gson.fromJson(jsonString,Detail.class);//取值