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;
 }

     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比較容易理解些,反正各有長短吧,以上純屬個人見解,大家習慣用誰誰,只希望能幫到遇到和我一樣情況的朋友們。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM