Android实战——GsonFormat、Gson、fastjson快速搞定JSON数据解析

GsonFormat、Gson、fastjson快速搞定JSON数据解析


本篇文章包括以下内容:

  • GsonFormat的使用
  • Gson框架的使用
  • fastjson框架的使用

如果对JSON数据还不是很明白它的解析步骤的话,可以看我的另一篇Android基础——JSON数据的全方位解析

GsonFormat的使用


GsonFormat是一个Android Studio的插件,输入一段Json格式的数据,会自动生成对应的Bean对象,省去了我们以前手动创建Json对象的时间

一、安装GsonFormat

在Android Studio中,通过File->Settings->Plugins,然后点击Browse repositories…按钮

输入GsonFormat右侧进行安装,我这里已经安装过

二、使用GsonFormat

我们准备了一段比较简单的Json数据作为我们的测试数据

{
    "error_code": 0,
    "reason": "Success",
    "result": {
        "data":[
            {
                "content":"床不在好,有女(你)就行,枕不在久,整完就走,斯是陋室,惟吾色心!!…",
                "hashId":"accd4dea540fe0b2f2205f9234114335",
                "unixtime":1478579630,
                "updatetime":"2016-11-08 12:33:50"
            },
            {
                "content":"老婆问老公:亲爱的你觉得我是灰姑娘吗?老公回答:当然不是了。老婆:那你的意思说是我是白雪公主?老公回答:不,你是黑姑娘。",
                "hashId":"8144c8979f02c539841968ef8046db98",
                "unixtime":1478577230,
                "updatetime":"2016-11-08 11:53:50"
            },
            {
                "content":"睡的正香,老婆把我叫醒说她要去卫生间,我说你上厕所就上呗!她说我是要叫你起来穿衣服的,我说那你上厕所我起来穿衣服干啥?我又不冷!然后就看着老婆把被子抱在身上去上厕所了。",
                "hashId":"76b7f6c0ba6c3455fbd216820ce4a68c",
                "unixtime":1478577230,
                "updatetime":"2016-11-08 11:53:50"
            },
            {
                "content":"老奶奶加了出租车,到了之后车费显示是8块,但是她只给了3块。司机赶紧叫住老奶奶:“老太太,这车费8块块你怎么只付3元呢?”老奶奶回答:“我刚才坐车的时候计价器显示5元块了。那我不就是在给三块就可以了。",
                "hashId":"85a82ecf746981ea3f48e5066eb034e1",
                "unixtime":1478577230,
                "updatetime":"2016-11-08 11:53:50"
            },
            {
                "content":"每次看战争片时总有一些疑惑,在冲锋时前面的士兵一边奔跑着一边狂打枪,可以理解。但总是看到后面的士兵也紧跟着跑开着枪,难道子弹会拐弯,打不到前面的士兵吗?……求解答,为什么打不到队友?",
                "hashId":"d3ddd517e97a6dbeac24c82d4ce34e72",
                "unixtime":1478575431,
                "updatetime":"2016-11-08 11:23:51"
            }
        ]
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

使用GsonFormat非常简单,首先创建一个Bean对象

public class Info {

}
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

接着在这个类里面使用alt+shift+s快捷键(就是鼠标右键的快捷键),进入Generate…,就可以找到GsonFormat

进入GsonFormat将我们的测试Json数据输入,点击确定,即可完成我们的Bean类的创建

查看我们自动生成的类

public class Info {

    /**
     * error_code : 0
     * reason : Success
     * result : ......
     */

    private int error_code;
    private String reason;
    private ResultBean result;

    public int getError_code() {
        return error_code;
    }

    public void setError_code(int error_code) {
        this.error_code = error_code;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public ResultBean getResult() {
        return result;
    }

    public void setResult(ResultBean result) {
        this.result = result;
    }

    public static class ResultBean {
        /**
         * content : 床不在好,有女(你)就行,枕不在久,整完就走,斯是陋室,惟吾色心!!…
         * hashId : accd4dea540fe0b2f2205f9234114335
         * unixtime : 1478579630
         * updatetime : 2016-11-08 12:33:50
         */

        private List<DataBean> data;

        public List<DataBean> getData() {
            return data;
        }

        public void setData(List<DataBean> data) {
            this.data = data;
        }

        public static class DataBean {
            private String content;
            private String hashId;
            private int unixtime;
            private String updatetime;

            public String getContent() {
                return content;
            }

            public void setContent(String content) {
                this.content = content;
            }

            public String getHashId() {
                return hashId;
            }

            public void setHashId(String hashId) {
                this.hashId = hashId;
            }

            public int getUnixtime() {
                return unixtime;
            }

            public void setUnixtime(int unixtime) {
                this.unixtime = unixtime;
            }

            public String getUpdatetime() {
                return updatetime;
            }

            public void setUpdatetime(String updatetime) {
                this.updatetime = updatetime;
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94

由于我们自动生成的Bean对象没有加上toString()的方法,为了方便后面的演示,我们手动增加toString()的方法,这里就不介绍了

Gson框架的使用


Gson–是一款Google公司的用来解析json数据格式的库

准备工作,导入依赖:

compile 'com.google.code.gson:gson:2.8.0'
  • 1
  • 1

一、Json数据自动生成Bean对象

Gson gson = new Gson();
Info info = gson.fromJson(jsonStr,Info.class);
  • 1
  • 2
  • 1
  • 2

二、Bean对象转化为Json数据

String jsonSti = new Gson().toJson(info);
  • 1
  • 1

这里演示我们刚才Info对象的数据,通过TextView显示出来

Gson gson = new Gson();
Info info = gson.fromJson(jsonStr,Info.class);
tv.setText(info.toString());
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

效果图

fastjson框架的使用


Fastjson–是一款阿里巴巴的用来解析json数据格式的库,据说目前最快

准备工作,导入依赖:

compile 'com.alibaba:fastjson:1.2.20'
  • 1
  • 1

一、Json数据自动生成Bean对象

Info info = JSON.parseObject(jsonStr,Info.class);
  • 1
  • 1

二、Bean对象转化为Json数据

String jsonStr = JSON.toJSONString(info);
  • 1
  • 1

这里演示我们刚才Info对象的数据,通过TextView显示出来

Info info = JSON.parseObject(jsonStr, Info.class);
tv.setText(info.toString());
  • 1
  • 2
  • 1
  • 2

效果图

posted @ 2016-12-30 16:11  天涯海角路  阅读(196)  评论(0)    收藏  举报