微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Gson在JAVA Android中将布尔值从1反序列化为false

我正在使用的课程如下:

public class TheJob {       
    private String jobDescription = null, jobAdditionalInfo = null, jobAddress = null;

    @Serializedname("jobActive")
    public boolean jobActive = true;

    @Serializedname("offsiteallowed")
    public boolean offsiteallowed;
}

我收到的JSON如下:

[{"jobId":"2","jobDescription":"Beta","jobAdditionalInfo":"Edited ","jobAddress":"103 Emus Avenue \nCenturion \n0157 \nSouth Africa \n","jobActive":"1","offsiteallowed":"1"}]

删除了其余的JSON数组项,因为它们完全相同.

我无法获取布尔字段jobActive和offsiteallowed来正确解析,即使JSON值为1,它们也始终解析为false.

除布尔值外,TheJob类中的所有其他内容都完全反序列化

任何建议将不胜感激.

解决方法:

Gson非常注重类型.要将int值解析为布尔值,您可能必须注册一个自定义布尔值反序列化类.或者,如果您控制api更改,则返回true而不是1.它期望为“ true”,并将其他所有内容都视为false.应该有一些注册自定义JsonDeserializer类的示例.该适配器允许您执行诸如反序列化为名为isFruit的布尔变量的操作,并从API返回Apple,Orange,Carrot等.注册后,您可以实现自定义反序列化器以评估值,并根据需要将true和false反序列化为isFruit.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐