前言:本来用原生的解析的好好的,突然有天就发神经觉得自己是一个讲究的人了,想试试别的控件,我知道还有什么fastjson等jar包可以用,因为我抱着学习的态度就没有考虑哪个效果更好,打算学习一下gjson,工作中基本都是相对来说比较复杂的类型的json数据,但是百度一下竟然没有搜到合适的,就自己试了一下,竟然成功了,记录一下吧。
json数据:
{
"reason": "success",
"result": {
"list": [
{
"id": "wechat_20150401071581",
"title": "号外:集宁到乌兰花的班车出事了!!!!!",
"source": "内蒙那点事儿",
"firstImg": "http://zxpic.gtimg.com/infonew/0/wechat_pics_-214279.jpg/168",
"mark": "",
"url": "http://v.juhe.cn/weixin/redirect?wid=wechat_20150401071581"
},
{
"id": "wechat_20150402003471",
"title": "首例男性生子成功,女人们开心吗?",
"source": "上街吧",
"firstImg": "http://zxpic.gtimg.com/infonew/0/wechat_pics_-214359.jpg/168",
"mark": "",
"url": "http://v.juhe.cn/weixin/redirect?wid=wechat_20150402003471"
}
]
}
}
冒号直接接着字符串的是String的格式,{}的是object格式,【】的是数组的格式。
需要3个类:
1:最外层的对象包含了reason和result,对应的是:
public class Weixin {
private String reason;
private Result result;
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public Result getResult() {
return result;
}
public void setResult(Result result) {
this.result = result;
}
}
2:result对象包含集合:
public class Result {
private ArrayList<ResultItem>list;
public ArrayList<ResultItem> getList() {
return list;
}
public void setList(ArrayList<ResultItem> list) {
this.list = list;
}
}
3:集合包含的对象:
public class ResultItem {
private String id;
private String title;
private String source;
private String firstImg;
private String mark;
private String url;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getFirstImg() {
return firstImg;
}
public void setFirstImg(String firstImg) {
this.firstImg = firstImg;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
这样得到json数据result以后:
Gson gson = new Gson();
Weixin w = gson.fromJson(result, Weixin.class);//此处可以得到已经赋值的Weixin对象。
Log.e("TAG", "gson:" +w.getReason());//此处可以得到reason的值。
这就是我的方法,如果你有更简便的方法记得留言告诉我哦!