对于简单的key:value的json数据,我们把所有的key定义为类成员,然后gson.fromJson即可序列化为java对象。
对于复杂的json数据,里面既有普通的key:value数据,也有二级的列表的数据,我们该如何处理呢?
事实上,非常的简单,我们在该类里再定义一个内部类,和一个List组织该内部类的对象即可,比如下面的json数据:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "retcode": "1", "tags": [ { "id": 17, "userid": 186, "tagname": "南", "deleted": 0, "ctime": "2016-06-19 18:50:14" }, { "id": 18, "userid": 186, "tagname": "东", "deleted": 0, "ctime": "2016-06-19 18:58:17" } ] } |
那么我们定义的解析类如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package com.bcoder.android.gsonbeans; import java.util.List; public class UserDataBean { public String retcode=""; public List<GsonTagBean> tags; public static class GsonTagBean{ public int id = 0; public String tagname = ""; public short deleted = 0; public Timestamp ctime ; } } |
解析的时候使用如下代码即可:
1 2 |
Gson gson = new Gson(); UserDataBean userDataBean = gson.fromJson(resstr, UserDataBean.class); |
是不是非常的简单!