使用Gson解析特殊Json数据

       之前做项目的时候,由于服务器端使用的是项目组内封装的大数据+Struts的框架,因此返回的Json数据格式与众不同,最开始使用Java本身的Json解析类库及其方法,后来发现解析不了,可能数据非标准Json吧,万般无奈之下,在各大技术论坛进行搜索询问,得知Google推出了Gson解析包,于是数据解析问题迎刃而解。

        下面讲一下使用Gson的方法,我以项目中遇到的数据为例,数据格式如下:

[{"id":1,"goodsPackage":"0012"},{"id":2,"goodsPackage":"001"},{"id":5,"goodsPackage":"11"},{"id":7,"goodsPackage":"12"},{"id":8,"goodsPackage":"2223331"},{"id":9,"goodsPackage":"2223332"},{"id":10,"goodsPackage":null},{"id":11,"goodsPackage":null},{"id":12,"goodsPackage":null}]

       (1) 首先,咱们需要下载Gson的jar包,我使用的是gson-2.5.jar这个包,然后在项目中加入该包;

使用Gson解析特殊Json数据_第1张图片

,我这边是Android项目,所以工程结构如此。  

        (2)接下来,我们需要针对Json数据写一个Bean类,如下:

publicclass GoodsPackage {

      String goodsPackage;

      intid;

      public String getPackageNo() {

             returngoodsPackage;

      }

      publicint getId() {

             returnid;

      }

}

       (3)最后,进行解析,具体代码如下:

//实例化一个Gson对象

Gson gson = new Gson();

//创建一个List对象接收解析后的数据

ListgoodsPackages = new ArrayList();

//Gson解析时所遵照的Type

Typetype = new TypeToken>() {}.getType();

//解析代码

goodsPackages = gson.fromJson(packageNoJson, type);

至此,Json数据解析完毕。注:上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。

总结一下:gson和其他现有java json类库最大的不同是gson需要序列化的实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。强烈推荐大家使用Gson进行Json解析,简单易用,思路明晰。



你可能感兴趣的:(开发心路)