zoukankan      html  css  js  c++  java
  • 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字段来定义哦。

  • 相关阅读:
    [原]POJ1141 Brackets Sequence (dp动态规划,递归)
    [转]10分钟入门python
    [原]sdut2605 A^X mod P 山东省第四届ACM省赛(打表,快速幂模思想,哈希)
    [原]SQL_实验2.1.3 清华大学出版社
    [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛
    [原]hdu2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (这个只是题目名字) (多重背包)
    快速幂运算
    山东省acm省赛 I Sequence(动态规划)
    [ACM] 携程预赛第一场 括号匹配 (动态规划)
    [ACM] poj 1141 Brackets Sequence (动态规划)
  • 原文地址:https://www.cnblogs.com/exmyth/p/4705485.html
Copyright © 2011-2022 走看看