代码格式化地址:http://tool.oschina.net/codeformat/json
我们将后台返回的数据,字符串,放到代码格式化工具里看看。
明确要定义的数据结构
{
"status": "0",
"msg": "ok",
"result": {
"pagesize": "10",
"list": [
{
"content": "同学抄作业自作聪明把一周改为一星期,至今忘不了物理老师看到小球旋转一星期时那扭曲的脸。",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68047.html"
},
{
"content": "2017版相亲准丈母娘提问流行款:
“小王,你家车库物业费现在交多少哦?”
这个问题非常有学问,既避免了物质化的庸俗,又包含了大量的信息:确保有房、有车、有车位,而且能从物业费判断小区档次。
标准答案:阿姨,您问的是哪一套哦?",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68048.html"
},
{
"content": " 大家有木有发现,男人和女友吵架,基友一般都说“算了,你小子找得到就不错了,人家那么好”。而女人和男友吵架,闺蜜一般都说“算了,分了重新找一个,真不知道他有哪里好”。",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68049.html"
},
{
"content": "陌陌群聚餐,男aa女免费,哥一观察聚餐女生挺多,赶紧报名。 因为洗澡洗头吹发型,有点迟到, 终于赶到火锅店,欢呼声起:“终于有男生来了” 尼玛,一桌女生就我一个男的! ",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68050.html"
},
{
"content": "一朋友在人才网看到有影视公司在招兼职模特和女演员,就按要求加了QQ发了照片过去。对方的昵称是王导,回话很直接:衣服脱下来看看。然后朋友就照做了。她拍了一张衣服挂阳台的照片发过去,还加了一句“地址要吗,淘宝爆款哦”。",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68051.html"
},
{
"content": "没当成兵一直是我最大的遗憾。原因是体检时医生说裤子脱了,我脱了,让蹦两下,我也蹦了。最后医生拨了拨我小弟弟,说转一圈,我楞了一下,拿起小弟弟顺时针转了一圈。。。医生以智商有硬伤把我淘汰了。。。",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68052.html"
},
{
"content": "那些征婚网上写的学历啊,内心独白啊都是没用的,只要贴上半年的淘宝购物单和评价记录,就能立马了解是个什么样的女生。 ",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68053.html"
},
{
"content": "牧羊犬死了,牧羊人一时之间找不到替代的狗,就在羊群中选了只羊,给它披上狗皮,并对它说:你是只牧羊犬。出乎意料的是,它竟然做得比真狗还到位,但凡有乱走的羊,它冲上去就咬,在这只伪狗驱使下,羊群苦不堪言。有羊悄悄对它说:你是羊啊……那羊义正词严地说:咱要对得起这身皮!",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68054.html"
},
{
"content": "地铁上听见一对情侣对话:“我给你发消息,为啥不马上回啊?人家多着急你造吗?” “可我马上回,你又马上回我,我再马上回你,这就没完啦。你得这么想:这就是网球比赛,你抽过来,我抽回去,你再回一记扣杀,没动静了,说明你得一分啊!” “哦…” 女孩若有心思点了点头,我和几个乘客也点了点头…",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68055.html"
},
{
"content": "去银行取钱,到柜台说取3000,柜台妹子说:没那么多,我纳闷说到:那你看隔壁柜台有吗? 那妹子严肃地说:你卡里钱没那么多! ",
"addtime": "2017-11-21 03:20:09",
"url": "http://m.kaixinhui.com/detail-68056.html"
}
]
}
}
我们一层层的嵌套:
在最外层有status,msg,result三个字段:result里面有pagesize,每页的大小,还有许多个JokeInfo(content ,addtime,url)组成的集合,于是
我们这样定义一个bean
package com.example.lin.mvp.bean;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
/**
* @author wangjing
* @since 2016/5/20 10:39
* @version 1.0
* <p>
* <strong>Features draft description.主要功能介绍</strong>
* </p>
*/
public class Joke {
@SerializedName("msg")
private String msg;
@SerializedName("status")
private String status;
@SerializedName("result")
private Result mResult;
public Result getResult() {
return mResult;
}
public class Result {
/**
* "total": "35328", "pagenum": "1", "pagesize": "6", "list": []
*/
@SerializedName("total")
private int total;
@SerializedName("pagenum")
private int pageNum;
@SerializedName("pagesize")
private int pageSize;
@SerializedName("list")
private ArrayList<JokeInfo> mJokeInfoArrayList = new ArrayList<>();
public ArrayList<JokeInfo> getJokeInfoArrayList() {
return mJokeInfoArrayList;
}
@Override
public String toString() {
return "Result{" +
"total=" + total +
", pageNum=" + pageNum +
", pageSize=" + pageSize +
", mJokeInfoArrayList=" + mJokeInfoArrayList +
'}';
}
}
@Override
public String toString() {
return "Joke{" +
"msg='" + msg + '\'' +
", status='" + status + '\'' +
", mResult=" + mResult +
'}';
}
}
public class JokeInfo {
@SerializedName("content")
private String mContent;
@SerializedName("addtime")
private String mAddTime;
public String getContent() {
return mContent;
}
public String getAddTime() {
return mAddTime;
}
定义好结构后,使用Gson解析就很方便了
joke=new Gson().fromJson(s,Joke.class);
//s为服务器返回的字符串
我正在搭建一个项目框架,包括登陆注册,主界面、网络请求,数据解析,广播,图库等等做了一个整合,使用了mvp模式,代码简单清晰。一直打算维护下去