博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android利用Gson解析嵌套多层的Json
阅读量:6906 次
发布时间:2019-06-27

本文共 943 字,大约阅读时间需要 3 分钟。

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

转载于:https://www.cnblogs.com/jinglecode/p/5555276.html

你可能感兴趣的文章
两两交换链表中的节点
查看>>
PCA(matlab)学习,与记录
查看>>
如何用Beyond Compare设置比较文件夹对齐方式
查看>>
linux TCP客户端指定端口号连接服务端
查看>>
CSS3设置Table奇数行和偶数行样式
查看>>
CentOS6.8下安装Docker
查看>>
java.lang.NumberFormatException 错误及解决办法
查看>>
python:大量参数如何传递
查看>>
curl 跨域请求回来的json数据带有BOM 字符\ufeff,掉诡异的BOM \ufeff
查看>>
Javascript下的AJAX
查看>>
Ado.Net Helper
查看>>
java内存溢出的解决思路
查看>>
android结合Jenkins使用V2签名
查看>>
栏目添加缩略图
查看>>
[BZOJ 1221][HNOI2001]软件开发(费用流)
查看>>
用户注册流程分析
查看>>
关于更新发布CSS和JS文件的缓存问题
查看>>
Django之路由系统
查看>>
mysql 查询当天的数据库
查看>>
KVM autotest
查看>>