Gson解析List的一点小问题

        这阵子在使用gson解析时遇到了点小麻烦,由于一直用的fastjson,最近一个项目里使用的gson,须要解析list集合,查资料都是使用TypeToken解决,相对比较麻烦,下面为大伙推荐一种简便的方法。
<Object> Object com.google.gson.Gson.fromJson(String json, Class<Object> classOfT) throws JsonSyntaxException 能够方便地帮咱们把Json字符串转换成对应类型的对象。这里提供一个简单的例子,帮助你们理解。
Json字符串
{response: "success", demoList: [{id: "1", name: "jack", age: "21"},{id: "2", name: "joke", age: "22"},{id: "3", name: "pink", age: "23"}]}
Demo.java
public class Demo {      private String id;      private String name;      private int age; }
       若是要解析出来Demo的List,咱们该怎么作呢?通常朋友查到网上的资料都是使用TypeToken的方法。
T com.google.gson.Gson.fromJson(String json, Class<T> classOfT) throws JsonSyntaxException
这个方法用起稍微有那么一点复杂,不过对于这个例子还不是很复杂,既然仍是复杂,那就不讨论它了,这不是这儿的重点。
       重点说说后面的方法:Gson.fromJson(String json, Class<Object> classOfT),由于咱们须要Demo的集合,因此就封装一个DemoList类,用这个类接收fromJson()返回的结果,以下:
DemoList.java
public class DemoList {
     private List<Demo> demoList;
     public List<Demo> getDemoList() {
         return demoList;
 }
java

     public void setDemoList(List<Demo> demoList) {
        this.demoList = demoList;
     }
}
       接下来,在解析时候就能够一行代码搞定整个Json的反序列化操做,这时候才真正看到了Gson的强大之处,但值得注意的就是DemoList中红色的成员变量,它的名字应该是和Json字符串中集合的键是对应的,我就是由于不知道这点让我饱经磨难。
DemoList demo = new Gson().fromJson(json,DemoList.class);
List<Demo> list = demo.getDemoList();

       是否是至关简单,不用fastJson同样,一级一级剥开了再处理,还要处理异常,可是我的仍是感受fastJson比较容易理解些,反正各有长短吧,以上纯属我的看法,你们习惯用谁谁,只但愿能帮到遇到和我同样状况的朋友们。json

相关文章
相关标签/搜索