zoukankan      html  css  js  c++  java
  • Android利用Gson解析嵌套多层的Json

    参考:http://www.cnblogs.com/jxgxy/p/3677256.html

    比如我们要解析一个下面这种的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字段来定义哦。

  • 相关阅读:
    NBUT 1120 Reimu's Teleport (线段树)
    NBUT 1119 Patchouli's Books (STL应用)
    NBUT 1118 Marisa's Affair (排序统计,水)
    NBUT 1117 Kotiya's Incantation(字符输入处理)
    NBUT 1115 Cirno's Trick (水)
    NBUT 1114 Alice's Puppets(排序统计,水)
    188 Best Time to Buy and Sell Stock IV 买卖股票的最佳时机 IV
    187 Repeated DNA Sequences 重复的DNA序列
    179 Largest Number 把数组排成最大的数
    174 Dungeon Game 地下城游戏
  • 原文地址:https://www.cnblogs.com/jinglecode/p/5555276.html
Copyright © 2011-2022 走看看