Android——Gson解析——示例

我这次讲解一个不太复杂的示例。

我使用的是Android studio,需要在gradle里添加

compile'com.google.code.gson:gson:2.6.2'

让其自动配置。

首先拿到一个json数据,如下

String json="{'status':'0','msg':'ok'," +
        "        'result':{'total':'67331','pagenum':'1','pagesize':'3'," +
        "        'list':[{'content':'过完年带着媳妇出发回城市上班,老妈大包小裹的给我装吃的,什么猪头排骨猪肘子猪肉装了三大袋子!媳妇瞅瞅老妈鬓边的白发一时心酸,跟她说了一句:养猪不容易,留着您自己吃吧?老妈跟媳妇说:“养了二十多年的猪都跟你走了,这些肉你也带走吧……”', 'addtime':'2018-03-21 03:20:09','url':'http://m.kaixinhui.com/detail-96369.html'}," +
        "{'content':'一青年问禅师:“大师,我事业,生活,爱情全都不顺,我该怎么办啊?”禅师把他领到一片梅花前,青年大悟:“你是要我再忍耐,梅花香自苦寒来是吗?”禅师摇摇头:“没钱你搞个毛!”','addtime':'2018-03-21 03:20:09','url':'http://m.kaixinhui.com/detail-96368.html'}," +
        "        {'content':'昨天晚上到朋友家吃饭,他家的小孩问我说:“叔叔,叔叔,你叫我一声孙悟空,好吗?”我开始没说话,在他再三要求下,我应战了,我叫了一声:“孙悟空!”这熊孩子:“呔!爷爷在此!”当时我绿着脸凌乱着。。。',       'addtime':'2018-03-21 03:20:09','url':'http://m.kaixinhui.com/detail-96367.html'}]}}";

之后根据json数据新建一系列的bean。

首先分析数据源,从大到小看(如果这样换行看着不舒服可以弄成一行,在分析):

第一个{  }开始 有三个小分类:分别是status 、msg 、result

之后第二个是result下有四个小分类:total、pagenum、pagesize、list

第三个是一个list,他是一个jsonarray的形式,可以集成list集合看,只看其中一个,有三个小类:content、addtime、url。

分清楚后我们开始建bean。

先从最小的开始建,最小的是list的,有三个属性,命名为Joke

public class Joke {
    private String content;
    private String addtime;
    private String url;

    public Joke() {
    }

    public Joke(String content, String addtime, String url) {
        this.content = content;
        this.addtime = addtime;
        this.url = url;
    }

    public String getContent() {
        return content;
    }

    public String getAddtime() {
        return addtime;
    }

    public String getUrl() {
        return url;
    }

    @Override
    public String toString() {
        return "content:"+content+",addtime:"+addtime+",url:"+url;
    }
}

之后是上一个,有四个属性  命名为PageInfo1,

(注意::属性的名称 ,一定要与上面的相符,否则Gson不能识别)

public class PageInfo1 {

    private String total;
    private int pagenum;
    private int pagesize;
    private List<Joke> list;

    public PageInfo1() {
    }

    public String getTotal() {

        return total;
    }

    public int getPagenum() {
        return pagenum;
    }

    public int getPagesize() {
        return pagesize;
    }

    public List<Joke> getList() {
        return list;
    }

    public PageInfo1(String total, int pagenum, int pagesize, List<Joke> jokeList) {

        this.total = total;
        this.pagenum = pagenum;
        this.pagesize = pagesize;
        this.list = jokeList;
    }

    @Override
    public String toString() {
        String s="";

        return "total:"+total+",pagenum:"+pagenum+",pagesize"+pagesize+s;
    }
}

最后一个 也就是最大的命名为ABB,有三个属性

public class ABB {
    private String status;
    private String msg;
    private PageInfo1 result;

    public ABB() {
    }

    public ABB(String status, String msg, PageInfo1 result) {
        this.status = status;
        this.msg = msg;
        this.result = result;
    }

    public String getStatus() {
        return status;
    }

    public String getMsg() {
        return msg;
    }

    public PageInfo1 getResult() {
        return result;
    }
}


bean建好之后,我们回到MainActivity,

Gson gson=new Gson();
ABB abb=gson.fromJson(json,ABB.class);
Log.d("AAccff","测试");

for(int i = 0;i<abb.getResult().getList().size();i++){
    jokeList.add(abb.getResult().getList().get(i));
}
for(Joke j:jokeList){
    Log.d("aaccff",j.toString());
}

敲上如上代码,这里只用日志打出list中的内容,其余内容,可自行打印。

    03-21 13:21:03.644 17757-17757/com.iflytek.json D/AAccff: 测试
03-21 13:21:03.644 17757-17757/com.iflytek.json D/aaccff: content:过完年带着媳妇出发回城市上班,老妈大包小裹的给我装吃的,什么猪头排骨猪肘子猪肉装了三大袋子!媳妇瞅瞅老妈鬓边的白发一时心酸,跟她说了一句:养猪不容易,留着您自己吃吧?老妈跟媳妇说:“养了二十多年的猪都跟你走了,这些肉你也带走吧……”,addtime:2018-03-21 03:20:09,url:http://m.kaixinhui.com/detail-96369.html
            03-21 13:21:03.644 17757-17757/com.iflytek.json D/aaccff: content:一青年问禅师:“大师,我事业,生活,爱情全都不顺,我该怎么办啊?”禅师把他领到一片梅花前,青年大悟:“你是要我再忍耐,梅花香自苦寒来是吗?”禅师摇摇头:“没钱你搞个毛!”,addtime:2018-03-21 03:20:09,url:http://m.kaixinhui.com/detail-96368.html
            03-21 13:21:03.644 17757-17757/com.iflytek.json D/aaccff: content:昨天晚上到朋友家吃饭,他家的小孩问我说:“叔叔,叔叔,你叫我一声孙悟空,好吗?”我开始没说话,在他再三要求下,我应战了,我叫了一声:“孙悟空!”这熊孩子:“呔!爷爷在此!”当时我绿着脸凌乱着。。。,addtime:2018-03-21 03:20:09,url:http://m.kaixinhui.com/detail-96367.html

好了这就是一个完整的Gson解析。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值