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

相關文章
相關標籤/搜索