加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用Jackson JSON解析将TRUE或FALSE转换为布尔值

发布时间:2020-12-15 02:05:25 所属栏目:Java 来源:网络整理
导读:我正在使用Jackson注释将 JSON响应解析为POJO对象.我在POJO中使用布尔变量来映射来自JSON的值“true”和“false”.但突然之间,我们将JST中的值变为“TRUE”和“FALSE”,并解析了这些值的失败. 任何人都可以建议将它映射到布尔值的方法,因为这个变量被用在很
我正在使用Jackson注释将 JSON响应解析为POJO对象.我在POJO中使用布尔变量来映射来自JSON的值“true”和“false”.但突然之间,我们将JST中的值变为“TRUE”和“FALSE”,并解析了这些值的失败.
任何人都可以建议将它映射到布尔值的方法,因为这个变量被用在很多地方,我不想将逻辑更改为String到Boolean.

解决方法

这不是一个真正的问题,这基本上是BeanUtils的工作方式.

对于布尔变量,Jackson删除了来自setter名称,以便在编组到JSON时派生它所期望的变量名称,并将set添加到相同的派生名称以解组回POJO.

所以boolean isFooTrue;当编组到JSON时结束为fooTrue,当解组它时会尝试调用setIsFooTrue();,这是不正确的.

如果您正在使用IDE并且生成了getter / setter,那么您可能会注意到生成的boolean isFoo代码;基本上忽略了就好像var名称只是foo:

private boolean isFoo;

public boolean isFoo() {
    return isFoo;
}

public void setFoo(boolean isFoo) {
    this.isFoo= isFoo;
}

有两个选项是从var名称中删除is,或者将is添加到setter名称.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读