欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android利用Gson解析嵌套多层的Json的简单方法

程序员文章站 2024-03-06 20:41:32
首先先讲一个比较简单点的例子(最简单的我就不讲啦,网上很多),帮助新手理解gson的使用方法: 比如我们要解析一个下面这种的json: string jso...

首先先讲一个比较简单点的例子(最简单的我就不讲啦,网上很多),帮助新手理解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字段来定义哦。

以上这篇android利用gson解析嵌套多层的json的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。