我正在使用 Jackson 注释将 JSON 响应解析为 POJO 对象。我在 POJO 中使用 boolean 变量来映射来自 JSON 的值“true”和“false”。但是突然之间,我们将“TRUE”和“FALSE”的值获取到 JSON 中,并且解析这些值失败。 任何人都可以建议将它映射到 boolean 的方法,因为这个变量在很多地方使用,我不想将逻辑更改为 String 到 Boolean 。
最佳答案
这不是真正的问题,这基本上是 BeanUtils 的工作方式。
对于 boolean
vars,Jackson 从 setter 名称中删除 is
以导出它在编码为 JSON 时期望的变量名称并添加 set
到相同的派生名称以解码回 POJO。
因此 boolean isFooTrue;
在编码为 JSON 时最终为 fooTrue
,而在解编时它将尝试调用 setIsFooTrue();
,这是不正确的。
如果您使用的是 IDE 并且生成了 getter/setter,您可能会注意到为 boolean isFoo;
生成的代码基本上忽略了 is
作为如果 var 名称只是 foo
:
private boolean isFoo;
public boolean isFoo() {
return isFoo;
}
public void setFoo(boolean isFoo) {
this.isFoo= isFoo;
}
两个选项是从 var 名称中删除 is
,或将 is
添加到 setter 名称。
关于java - 使用 Jackson JSON 解析将 TRUE 或 FALSE 转换为 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316321/