Gson去解析JSON数据

Gson解析JSON数据(代码示例)
(利用Android Studio的话可以添加GsonFormat插件去自动构建Bean)
1、网上下载Gson解析需要用的jar包,复制添加到android studio 或者Eclipse的libs文件夹下,在android studio中需要右键你导入的jar包,选择弹出的菜单栏中的Add As Library。这样完成第一步–导包。
2、构建JavaBean利用Gson解析JSON代码示例

{"newslist":[
    {"title":"四川男子持剔骨刀拦路抢劫,“持刀疯狂扑向民警”被枪",
     "picUrl":"http:\/\/s.cimg.163.com\/catchpic\/1\/1B\/1B0B7830B5DA1FBD3E5EAEF5B4B02690.jpg.119x83.jpg",
     "ctime":"2016-04-13 17:47","url":"http:\/\/news.163.com\/16\/0413\/17\/BKI4L0HP00014AED.html#f=slist",
     "description":"网易社会"
    },
    {"title":"媒体揭职业捉奸人:工作时如猎人 难获合法身份",
     "picUrl":"http:\/\/s.cimg.163.com\/cnews\/2016\/4\/13\/2016041317255681573.jpg.119x83.jpg",
     "ctime":"2016-04-13 17:47","url":"http:\/\/news.163.com\/16\/0413\/17\/BKI4MDQQ0001124J.html#f=slist",
     "description":"网易社会"
    },
    {"title":"男子杀女友逃20年 以为超过追诉期自首被判死缓",
     "picUrl":"http:\/\/s.cimg.163.com\/catchpic\/3\/3E\/3ED269B7409E41117327AF2A986D686E.jpg.119x83.jpg",
     "ctime":"2016-04-13 17:49","url":"http:\/\/news.163.com\/16\/0413\/17\/BKI4PNH8000156PO.html#f=slist",
     "description":"网易社会"
    },
    {"title":"女生搭乘可疑专车 假装身体不舒服成功自救",
     "picUrl":"http:\/\/s.cimg.163.com\/cnews\/2016\/4\/13\/201604131743435b3ca_550.png.119x83.jpg",
     "ctime":"2016-04-13 18:12","url":"http:\/\/news.163.com\/16\/0413\/18\/BKI647GS00011229.html#f=slist",
     "description":"网易社会"
    },
    {"title":"为抽烟大妈图省事 一口气带50个打火机过安检被查",
     "picUrl":"http:\/\/s.cimg.163.com\/catchpic\/F\/F1\/F1678BC06A5E889077FB219800C1B19C.jpg.119x83.jpg",
     "ctime":"2016-04-13 18:14","url":"http:\/\/news.163.com\/16\/0413\/18\/BKI6836800014AED.html#f=slist",
     "description":"网易社会"
    }
    ],
    "msg":"success",
    "code":200
}

例如对于上面这种的JSON数据,其中包含一个数组,解析起来就需要分两步:
a、先需要构建NewsBean

public class NewsBean {
    public List<NewsList> newslist;
    public String msg;
    public String code;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public void setNewslist(List<NewsList> newslist) {
        this.newslist = newslist;
    }

    public List<NewsList> getNewslist() {
        return newslist;
    }
}

其中的newslist是一个数组,所以需要先定义为一个List,然后接下来再写自定义泛型中的NewsList
b、构建自定义泛型NewsList

public class NewsList {
    public String title;
    public String picUrl;
    public String ctime;
    public String url;
    public String description;

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setCtime(String ctime) {
        this.ctime = ctime;
    }

    public String getCtime() {
        return ctime;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUrl() {
        return url;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }
}

至此,构建JavaBean结束,接下来在你的需要解析解析JSON数据的地方添加

NewsBean newsBean = gson.fromJson(response, NewsBean.class);

两个参数,其中的response就是我获得的String类型的JSON数据,NewsBean就是刚刚构建的。
接下来得到了newsBean即可根据其中的get方法获取你想要的数据就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值