Gson解析json数据
1、解析单个对象
JSON字符串如下
[ { "formatDate":"2015-10-28", "date":"2015\u5e7410\u670828\u65e5 \u661f\u671f\u4e09", "list":[{ "sdate":"2015-10-28", "time":"08:00", "type":"\u5e38\u89c4\u8d5b", "home_team":"\u8001\u9e70", "home_score":"94", "visit_team":"\u6d3b\u585e", "visit_score":"106" },{ "sdate":"2015-10-28", "time":"08:00", "type":"\u5e38\u89c4\u8d5b", "home_team":"\u516c\u725b", "home_score":"97", "visit_team":"\u9a91\u58eb", "visit_score":"95" }] } ]
封装解析的对象
public class NBAMatchs { /** * 时间 */ private String formatDate; /** * 赛程时间 */ private String date; /** * 赛事列表 */ List<NBAMatchBasic> list ; public String getFormatDate() { return formatDate; } public void setFormatDate(String formatDate) { this.formatDate = formatDate; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public List<NBAMatchBasic> getList() { return list; } public void setList(List<NBAMatchBasic> list) { this.list = list; } }
实体对象
public class NBAMatchBasic { private String sdate; private String time ; private String home_team; private String home_score; private String visit_team; private String visit_score; public String getSdate() { return sdate; } public void setSdate(String sdate) { this.sdate = sdate; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getHome_team() { return home_team; } public void setHome_team(String home_team) { this.home_team = home_team; } public String getHome_score() { return home_score; } public void setHome_score(String home_score) { this.home_score = home_score; } public String getVisit_team() { return visit_team; } public void setVisit_team(String visit_team) { this.visit_team = visit_team; } public String getVisit_score() { return visit_score; } public void setVisit_score(String visit_score) { this.visit_score = visit_score; } }
解析代码
public static void main(String[] args) { String Json = "JSON字符串"; NBAMatchs NBA = new NBAMatchs(); NBA = new Gson().fromJson(Json, NBAMatchs.class); System.out.println(NBA.getFormatDate()); }
2、解析List集合
Json字符串如下
[ { "formatDate":"2015-10-28", "date":"2015\u5e7410\u670828\u65e5 \u661f\u671f\u4e09", "list":[ { "sdate":"2015-10-28", "time":"08:00", "type":"\u5e38\u89c4\u8d5b", "home_team":"\u8001\u9e70", "home_score":"94", "visit_team":"\u6d3b\u585e", "visit_score":"106" },{ "sdate":"2015-10-28", "time":"08:00", "type":"\u5e38\u89c4\u8d5b", "home_team":"\u516c\u725b", "home_score":"97", "visit_team":"\u9a91\u58eb", "visit_score":"95" }] }, { "formatDate":"2015-10-29", "date":"2015\u5e7410\u670829\u65e5 \u661f\u671f\u56db", "list":[ { "sdate":"2015-10-29", "time":"07:00", "type":"\u5e38\u89c4\u8d5b", "home_team":"\u9b54\u672f", "home_score":"87", "visit_team":"\u5947\u624d", "visit_score":"88" },{ "sdate":"2015-10-29", "time":"07:30", "type":"\u5e38\u89c4\u8d5b", "home_team":"\u51ef\u5c14\u7279\u4eba", "home_score":"112", "visit_team":"76\u4eba", "visit_score":"95" }] } ]
解析代码
public static void main(String[] args) { String NBAMatchJsons ="JSON字符串"; List<NBAMatchs> matchs = new ArrayList<NBAMatchs>(); matchs = new Gson().fromJson(NBAMatchJsons,new TypeToken<ArrayList<NBAMatchs>>() {}.getType()); System.out.println(matchs.size()); }
3、解析map集合
Json字符串
{ '1': {'id': '1','code': 'bj','name': '北京','map': '39.90403, 116.40752599999996'}, '2': {'id': '2','code': 'sz','name': '深圳','map': '22.543099, 114.05786799999998'}, '9': {'id': '9','code': 'sh','name': '上海','map': '31.230393,121.473704'}, '10': {'id': '10','code': 'gz','name': '广州','map': '23.129163,113.26443500000005'}
}
解析测试类
public class Test { class City{ int id; String name; String code; String map; }
public static void main(String[] args) { String jsonStr="Json字符串"; Map<String, City> citys = new Gson().fromJson(jsonStr, new TypeToken<Map<String, City>>() {}.getType()); System.out.println(citys.size()); } }