使用Gson解析特殊Json数据

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