之前做项目的时候,由于服务器端使用的是项目组内封装的大数据+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这个包,然后在项目中加入该包;
,我这边是Android项目,所以工程结构如此。
(2)接下来,我们需要针对Json数据写一个Bean类,如下:
publicclass GoodsPackage {
String goodsPackage;
intid;
public String getPackageNo() {
returngoodsPackage;
}
publicint getId() {
returnid;
}
}
//实例化一个Gson对象
Gson gson = new Gson();
//创建一个List对象接收解析后的数据
List<GoodsPackage>goodsPackages = new ArrayList<GoodsPackage>();
//Gson解析时所遵照的Type
Typetype = new TypeToken<ArrayList<GoodsPackage>>() {}.getType();
//解析代码
goodsPackages = gson.fromJson(packageNoJson, type);
至此,Json数据解析完毕。注:上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。
总结一下:gson和其他现有java json类库最大的不同是gson需要序列化的实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。强烈推荐大家使用Gson进行Json解析,简单易用,思路明晰。