前言:本来用原生的解析的好好的,突然有天就发神经觉得自己是一个讲究的人了,想试试别的控件,我知道还有什么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的值。
这就是我的方法,如果你有更简便的方法记得留言告诉我哦!