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字段来定义哦。

  • 相关阅读:
    ubuntu安装jdk的两种方法
    LeetCode 606. Construct String from Binary Tree (建立一个二叉树的string)
    LeetCode 617. Merge Two Binary Tree (合并两个二叉树)
    LeetCode 476. Number Complement (数的补数)
    LeetCode 575. Distribute Candies (发糖果)
    LeetCode 461. Hamming Distance (汉明距离)
    LeetCode 405. Convert a Number to Hexadecimal (把一个数转化为16进制)
    LeetCode 594. Longest Harmonious Subsequence (最长的协调子序列)
    LeetCode 371. Sum of Two Integers (两数之和)
    LeetCode 342. Power of Four (4的次方)
  • 原文地址:https://www.cnblogs.com/jinglecode/p/5555276.html
Copyright © 2011-2022 走看看