java - 使用 Jackson JSON 解析将 TRUE 或 FALSE 转换为 boolean 值

标签 java json

我正在使用 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/

相关文章:

java - 使用 filewriter 将哈希集写入 txt

javascript - "Fixing"来自 MySQL 的 JSON

java - 下面的 java 代码在没有 volatile 的情况下是线程安全的吗?

java - Sum 运算符和 HashMap 对象作为结果

java - JDBC 中的字符集

php - 使用 wp_remote_post() 将带有图像的多部分表单数据发布到 iNaturalist REST API

Java Jackson 序列化抽象类列表

javascript - 更改 node_args 后 Pm2 重启 Node.js 进程

java - OneToMany 将 POJO 映射到 JSON Spring

java - 查找线程池内 Activity 线程的名称: ExecutorService in java