Gson快速Json解析教程

来源:互联网 发布:甲醛挥发温度曲线 知乎 编辑:程序博客网 时间:2024/06/06 19:52
Json 在开发应用中大家都不陌生,如何解析和创建也有很多方法可以参考。但是发现和多人还是用JSONObject来解析,其实并不反对这样做,只是讲究效率的今天,我们不应该把时间浪费在去揣摩一级一级节点结构上面。
其实Gson FastJson等第三方的Jar包在处理这些上面很强大,效率也比传统的JSONObject要快上不少,关键是省时间,一劳永逸!
好了不废话了,下面教大家如何快速的1分钟左右搞定复杂到爆的Json串的解析。
首先给大家介绍的Gson 或 FastJson库 其中之一,这个是不可少的。
然后给大家提供一个网站
Json转Pojo

可以直接把你需要的Json转成Java Bean


还有一个就是BeJson 也是很强大的网站
BeJson

刚刚试了下 http://www.jsonschema2pojo.org/  这个貌似有时候不稳定,最近墙的厉害,受伤啊,Google也不能访问。。。

这里给大家举个简单的栗子:
  1. {
  2.     "code": 200,
  3.     "message": "返回成功",
  4.     "programmers": [
  5.         {
  6.             "firstName": "Brett",
  7.             "lastName": "McLaughlin",
  8.             "email": "aaaa"
  9.         },
  10.         {
  11.             "firstName": "Jason",
  12.             "lastName": "Hunter",
  13.             "email": "bbbb"
  14.         },
  15.         {
  16.             "firstName": "Elliotte",
  17.             "lastName": "Harold",
  18.             "email": "cccc"
  19.         }
  20.     ],
  21.     "authors": [
  22.         {
  23.             "firstName": "Isaac",
  24.             "lastName": "Asimov",
  25.             "genre": "sciencefiction"
  26.         },
  27.         {
  28.             "firstName": "Tad",
  29.             "lastName": "Williams",
  30.             "genre": "fantasy"
  31.         },
  32.         {
  33.             "firstName": "Frank",
  34.             "lastName": "Peretti",
  35.             "genre": "christianfiction"
  36.         }
  37.     ],
  38.     "musicians": [
  39.         {
  40.             "firstName": "Eric",
  41.             "lastName": "Clapton",
  42.             "instrument": "guitar"
  43.         },
  44.         {
  45.             "firstName": "Sergei",
  46.             "lastName": "Rachmaninoff",
  47.             "instrument": "piano"
  48.         }
  49.     ]
  50. }

上面帖的一段简单的Json,就拿这个做案例,来教大家怎么快速完成解析这一繁琐的工作。
分析这个Json串的结构我们会发现跟节点下有5个子节点

要注意的一点是 这里的变量名一定要和Json中的Key值对应上,而且大小写也要一致
分别是“programmers”、“authors”、“musicians” 这3个是数组,我们解析出来的话一般是用List<T>   ,还有"code","message"这两个是基本类型。

然后我们可以构造第一级的Java Bean 
  1. public class RootBean{
  2. public List<Programmer> programmers;
  3. public List<Author> authors;
  4. public List<Musician> musicians;
  5. public int code;
  6. public String message;
  7. }

然后是其他二级Bean

  1. public class Programmer{
  2. public String firstName;
  3. public String lastName;
  4. public String email;
  5. }
  1. public class Author{
  2. public String firstName;
  3. public String lastName;
  4. public String genre;
  5. }
  1. public class Musician{
  2. public String firstName;
  3. public String lastName;
  4. public String instrument;
  5. }

这里所有的Bean已经分析完了,然后我们看看解析的代码怎么去写这里我用的是Gson-2.2.4的jar  其实其他库也都类似,如果你是用其他库,也可以去试试,过程大致都是一样的

  1. RootBean root;
  2. Gson gson = new Gson();
  3. root = gson.fromJson(tmp, RootBean.class);


就这么简单,你已经得到了你需要的JavaBean了  还考虑什么,你还会喜欢去一个一个节点用JSONObject解析吗?

其实如果 http://www.jsonschema2pojo.org/ 这个网站可以用的话 直接能按我们的要求生成Pojo文件,我这里是自己按这Json的结构来自己写的,原理一样,用工具的优点就是节约在一些简单问题上花费的重复时间,希望给你们带来帮助!




http://download.csdn.net/detail/qq_15138169/7580369  源码下载地址

0 0
原创粉丝点击