【问题标题】:Android - boolean JSON deserialization always return false (int format)Android - 布尔 JSON 反序列化始终返回 false(int 格式)
【发布时间】:2013-09-26 08:32:12
【问题描述】:

在将 JSON 反序列化为自定义 bean 时(不管 bean 是什么,即使有一个布尔字段),sqlite 表中的布尔值 red 未正确处理。

根据 sqlite 规则,在 JSON 中,布尔值显示为整数值(0 为 false,否则为 true)。

当使用正确的参数调用 fromJson 方法时,布尔值始终被反序列化为 false,即使 JSON 值为 1。

我找到了this answer 和相关的extern link。真诚地我没有测试它,因为它的实现很复杂(不知道它是否真的符合我的问题)。

我正在寻找一种更轻便的解决方案。

谢谢你, L.F.

【问题讨论】:

    标签: java android json sqlite deserialization


    【解决方案1】:

    你可以用字符串“y”和“n”替换真假并序列化;反序列化后,您需要进行反向转换。这可能等同于上述解决方案,但需要较少重用其他人的代码。

    另一种选择是在数据结构中使用 int-s 而不是 boolean-s。

    【讨论】:

    • 我尝试了第二种解决方案,反序列化为 Integer 并使用 getter,如下所示: public boolean getTextboxvisible() { return this.textBoxVisible != 0;但是使用此解决方案,我必须编辑解决方案上的所有 pojo 类...我想设置一个通用的自定义反序列化器,该反序列化器使用“Int to boolean”检查扩展基本反序列化器。有可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多