一、概述
本文主要介绍Android中最常用的两种Json转换工具:gson和fastjson。
gson为Google开源的json转换工具;
fastjson为阿里开源的json转换工具。
二、使用
1.添加库依赖。(最新版本可以到github上搜索对应项目)
gson:
dependencies {
implementation ‘com.google.code.gson:gson:2.8.6’
}
fastjson:
dependencies {
implementation ‘com.alibaba:fastjson:1.2.61’
}
2.创建JsonBean
定义JsonBean变量时要注意,如果变量名称与属性名称一致时可不指定属性名称,如果不一致时就必须指定了。
比如:
{"user_id":133,"nick_name":"体验账号","user_name":"体验账号","token":"a26b79bbc8e1b74914fb37148f58eccb"}
变量名称与属性名称一致:
public class UserBean {
private String user_id;
private String nick_name;
private String user_name;
private String token;
}
变量名称与属性名称一致:
public class UserBean {
private String user_id;
private String nick_name;
private String user_name;
@SerializedName("token") //gson指定属性名称
@JSONField(name = "token") //fastjson指定属性名称
private String session;
}
3.创建getter()和setter()方法
点击鼠标右键弹出下图
点击“Generate…”,如下图:
点击“Getter”或者“Setter”,选中所有属性,点击“OK”即可生成对应方法。
4.反序列化
gson:
Gson gson=new Gson();
UserBean userBean = gson.fromJson(json, UserBean);
fastjson:
UserBean userBean = JSON.parseObject(json, UserBean);
三、注意事项
使用fastjson时,JsonBean中必须添加Getter和Setter方法,而且这个Getter和Setter方法必须遵循标准驼峰原则,因为fastjson解析的是利用反射通过setXxx()为对象赋值的。