使用Gson解析特殊Json数据

本文介绍了如何使用Gson库解析非标准Json数据,特别是在Android项目中的应用。通过创建对应的Bean类,并利用Gson的fromJson方法,将Json字符串转换为Java对象列表,从而解决数据解析问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       之前做项目的时候,由于服务器端使用的是项目组内封装的大数据+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对象接收解析后的数据

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解析,简单易用,思路明晰。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值