Gson数据解析实例分析
来源:互联网 发布:国际数据流量怎么开通 编辑:程序博客网 时间:2024/06/01 22:33
在日常开发中,对于数据的解析是在所难免的,数据的格式也基本为json格式。数据一般解析为实体类型、集合类型,下面为android开发环境下实例分析,IDE为android studio。
1.Gradle添加依赖
compile 'com.google.code.gson:gson:2.8.1'
2.实体类型解析
一段json数据:
{ "username": "admin", "email": "123456789@qq.com" }
然后创建一个实体类
public class JsonBean { //添加注解标志,目的把name标记为json串中对应的username @SerializedName("username") private String name; private String email; public String getName() { return name; } public JsonBean setName(String name) { this.name = name; return this; } public String getEmail() { return email; } public JsonBean setEmail(String email) { this.email = email; return this; } @Override public String toString() { String data = "{ \n" + "username:" + name + ",\n email:" + email + "\n}"; return data; }}
注意: @SerializedName()注解,其作用是为了把json中的数据与变量一一对应起来,如json中username与name对应, 即@SerializedName(“username”)中的username与json中username必须一致。
应用
String data = " {\n" + " \"username\": \"admin\",\n" + " \"email\": \"123456789@qq.com\"\n" + " }"; JsonBean bean = new Gson().fromJson(data, JsonBean.class); Toast.makeText(mContext, bean.toString(), Toast.LENGTH_SHORT).show();
成功转换为JsonBean实例对象。
3. 集合类型数据解析
json数据样例
[ { "username": "zhangsan", "email": "12345678@gmail.com" }, { "username": "lisi", "email": "12345678@163.com" }, ...]
实体类还是之前的,具体实现:
String data = "[ \n" + "{ \n" + "\"username\": \"zhangsan\", \n" + " \"email\": \"10\" \n " + "}, \n" + "{ \n" + "\"username\": \"lisi\", \n" + "\"email\": \"20\" \n" + "} \n" + "]"; Type type = new TypeToken<List<JsonBean>>(){}.getType(); List<JsonBean> bean = new Gson().fromJson(data, type); Toast.makeText(mContext, bean.get(0).toString() + bean.get(1).toString(), Toast .LENGTH_SHORT).show();
另外一种常见的json格式为:
{ "code": 200, "message": "成功", data: [ { "username": "qwe", "email": "12123@a.com" }, { "username": "zhangsan", "email": "1234@b.com" }, ... ]}
此时的实体类可以这么写:
public class JsonBean { @SerializedName("code") private int code; @SerializedName("message") private String message; @SerializedName("data") private List<MyData> mDatas; public int getCode() { return code; } public JsonBean setCode(int code) { this.code = code; return this; } public String getMessage() { return message; } public JsonBean setMessage(String message) { this.message = message; return this; } public List<MyData> getDatas() { return mDatas; } public JsonBean setDatas(List<MyData> datas) { mDatas = datas; return this; } public static class MyData { @SerializedName("username") public String username; @SerializedName("email") public String email; }}
如果定义的变量与json数据中的一致,上面注解部分可都去掉,也可只注解不一致的。
具体使用
//数据就不提供了,仅定义变量 String jsonData = ""; JsonBean jsonBean = new Gson().fromJson(jsonData, JsonBean.class); List<JsonBean.MyData> datas = jsonBean.getDatas();
阅读全文
1 0
- Gson数据解析实例分析
- Gson解析JSON数据实例
- gson解析json数据分析
- 用gson分析解析json实例
- google-gson解析json数据---小实例
- Google Gson解析Json数据应用实例
- Google Gson解析Json数据应用实例
- Gson解析Json实例
- Gson解析 json 实例
- Gson解析实例
- Gson解析Json数据
- Gson解析Json数据
- java 解析gson数据
- Gson解析Json数据
- Gson解析数据
- Gson解析json数据
- Gson解析json数据
- Gson数据的解析。
- AndroidStudio最新IDE搭建支持Kotlin
- WIN7 环境安装python的gensim
- HTTP请求中的form data和request payload的区别
- linux 源配置
- 单词接龙(DFS)
- Gson数据解析实例分析
- kappa系数在评测中的应用
- 建造者模式的C#实现
- 一起学安全测试——用Burp Suite进行暴力破解
- CCPC 2016 长春赛区 hdu5912
- C++数值类型与string的相互转换
- Tomcat配置公网访问
- Docker简介(一)
- 1014. 福尔摩斯的约会 (20)