【轉】Android利用Gson解析嵌套多層的Json

首先先講一個比較簡單點的例子(最簡單的我就不講啦,網上很多),幫助新手理解Gson的使用方法:
                 比如我們要解析一個下面這種的Json:
                 String json = {
    "a": "100",
    "b": [
        {
            "b1": "b_value1",
            "b2": "b_value2"
        },
        {
            "b1": "b_value1",
            "b2": "b_value2"
        }
    ],
    "c": {
        "c1": "c_value1",
        "c2": "c_value2"
    }

}


                首先我們需要定義一個序列化的Bean,這裏採用內部類的形式,看起來會比較清晰一些:
                public class JsonBean {
                         public String a;
                         public List<B> b;
                         public C c;

                         public static class B {
                                  public String b1;
                                  public String b2;
                        }
    
                        public static class C {
                                 public String c1;
                                 public String c2;
                       }
              }
             很多時候大家都是不知道這個Bean是該怎麼定義,這裏面需要注意幾點:
             1、內部嵌套的類必須是static的,要不然解析會出錯;
             2、類裏面的屬性名必須跟Json字段裏面的Key是一模一樣的;
             3、內部嵌套的用[]括起來的部分是一個List,所以定義爲 public List<B> b,而只用{}嵌套的就定義爲 public C c,
                  具體的大家對照Json字符串看看就明白了,不明白的我們可以互相交流,本人也是開發新手!
              Gson gson = new Gson();
              java.lang.reflect.Type type = new TypeToken<JsonBean>() {}.getType();
              JsonBean jsonBean = gson.fromJson(json, type);
              然後想拿數據就很簡單啦,直接在jsonBean裏面取就可以了!

       如果需要解析的Json嵌套了很多層,同樣可以可以定義一個嵌套很多層內部類的Bean,需要細心的對照Json字段來定義哦。



原文出處:http://www.cnblogs.com/jxgxy/p/3677256.html

感謝作者分享!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章