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是该怎么定义,这里面须要注意几点:
             一、内部嵌套的类必须是static的,要否则解析会出错;
             二、类里面的属性名必须跟Json字段里面的Key是如出一辙的;
             三、内部嵌套的用[]括起来的部分是一个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字段来定义哦。java

相关文章
相关标签/搜索