一起Talk Android吧(第三百五十四回:Gson库解析JSON数组二)

各位看官们,大家好,上一回中咱们说的是Android中Gson库解析JSON数组的例子,这一回中咱们继续介绍该例子。闲话休提,言归正转。让我们一起Talk Android吧!

看官们,我们在本章回中继续介绍如何使用Gson库解析JSON数组,不过JSON数组和上一章回中的不同:上一章回中介绍的数组只包含JSON对象,本章回中介绍的JSON数组包含标量和JSON对象。

步骤与示例

接下来我们介绍如何使用Gson库解析JSON数组中的标量,标量需要单独拿出来解析,解析的方法和解析JSON对象的方法相同,只是标量的类型为Java的包装类,而不是自定义的JavaBean类。下面是两个解析示例,请大家参考:

String javaObj = gsonObj.fromJson("id",String.class);
Integer integerObj = gsonObj.fromJson(String.valueOf(36),Integer.class);

示例中解析的标量类型是String和Integer,注意它们是类类型,不能是基本类型。

我们可以对JSON数组中的单个标量进行解析,但是JSON数组中包含标量和其它类型的成员(比如JSON对象或者JSON数组)时,我们不能使用Gson库解析这种混合类型的JSON数组.

原理分析

有看官说,为什么不能混合在一起解析,因为它们混合在一起不是有效的JSON数据,或者说这种JSON数组不符合JSON语法规则。如何确认JSON数据是否符合语法规则?可以使用GsonFormat插件,如果GsonFormat插件无法生成JavaBean类,那么说明此JSON数据不符合JSON语法。

其实,我们在前面章回中使用Java原生的方法解析过这种JSON数据,当时主要是为了介绍如何解析标量而特意在JSON数组中添加了标量,在实际的项目中很少会有这样的JSON数组。如果实际项目中确实有这样的JSON数据,可以让服务器端修改数据类型,或者不修改服务器端(可能修改成本高)而是使用原生的方式解析JSON数组,这也是我们在前面章回中介绍使用Java原生方法解析JSON数据的原因,因为Gson库无法解析这种不符合语法规则的JSON数组。

此外,在分享一些项目经验:如果Gson库解析数据时抛出了类型不匹配的异常,那么需要检查JSON数据的类型,如果JSON数据的类型不符合语法规则,那么只能放弃Gson库,转而使用Java原生的解析方法去解析这些特殊的JSON数据。

看官们,关于Android中Gson库解析JSON数组的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值