Gson解析json数据

1、解析单个对象

  JSON字符串如下

[
    {
        "formatDate":"2015-10-28",
        "date":"2015u5e7410u670828u65e5 u661fu671fu4e09",
        "list":[{
                    "sdate":"2015-10-28",
                    "time":"08:00",
                    "type":"u5e38u89c4u8d5b",
                    "home_team":"u8001u9e70",
                    "home_score":"94",
                    "visit_team":"u6d3bu585e",
                    "visit_score":"106"
                },{
                    "sdate":"2015-10-28",
                    "time":"08:00",
                    "type":"u5e38u89c4u8d5b",
                    "home_team":"u516cu725b",
                    "home_score":"97",
                    "visit_team":"u9a91u58eb",
                    "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":"2015u5e7410u670828u65e5 u661fu671fu4e09",
        "list":[
                {
                    "sdate":"2015-10-28",
                    "time":"08:00",
                    "type":"u5e38u89c4u8d5b",
                    "home_team":"u8001u9e70",
                    "home_score":"94",
                    "visit_team":"u6d3bu585e",
                    "visit_score":"106"
                },{
                    "sdate":"2015-10-28",
                    "time":"08:00",
                    "type":"u5e38u89c4u8d5b",
                    "home_team":"u516cu725b",
                    "home_score":"97",
                    "visit_team":"u9a91u58eb",
                    "visit_score":"95"
                }]
    },
    {
        "formatDate":"2015-10-29",
        "date":"2015u5e7410u670829u65e5 u661fu671fu56db",
        "list":[
            {
                "sdate":"2015-10-29",
                "time":"07:00",
                "type":"u5e38u89c4u8d5b",
                "home_team":"u9b54u672f",
                "home_score":"87",
                "visit_team":"u5947u624d",
                "visit_score":"88"
            },{
                "sdate":"2015-10-29",
                "time":"07:30",
                "type":"u5e38u89c4u8d5b",
                "home_team":"u51efu5c14u7279u4eba",
                "home_score":"112",
                "visit_team":"76u4eba",
                "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());   } }
原文地址:https://www.cnblogs.com/parryyang/p/5566195.html