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
效果图

浙公网安备 33010602011771号