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方法获取你想要的数据就行。