java - 将 JSON 转换为 Java 对象时的 Setter 问题

标签 java json mapping backend

我正在尝试使用 com.fasterxml.jackson.core 将下面的简单 JSON 转换为 Java 对象。我对 BonusAmount 字段设置方法有疑问。

JSON:

{"amount":332.5, "bonusamount":3, "action":"Spend"} 

Java 类:

@JsonIgnoreProperties(ignoreUnknown = true)
public class GameRequest {

@JsonProperty("amount")
private BigDecimal amount;

@JsonProperty("bonusamount")
private BigDecimal bonusAmount;

@JsonProperty("action")
private String action;

.....

public BigDecimal getBonusAmount() {
    return bonusAmount;
}

public void setBonusAmount(BigDecimal bonusAmount) {
    this.bonusAmount = bonusAmount;
}

当我尝试使用它时,bonusAmount 字段的值为 NULL,但如果我将 setter 方法的名称从 setBonusAmount 更改为 setBonusamount 那么它就可以工作。谁能告诉我为什么?

最佳答案

这是因为您已使用 @JsonProperty("bonusamount") 重命名了字段,这意味着 Jackson 会搜索名为 setBonusamount 的方法(第一个字符为大写,其余字符保留为相同)

关于java - 将 JSON 转换为 Java 对象时的 Setter 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51241326/

相关文章:

Java:JButton数组不会改变大小

带有竖线的 Java 正则表达式

mysql - 如何将 NodeJs 响应转换为嵌套的 json 响应

java - 问题从文件读取并使用二维数组对数据进行排序

javascript - 是否可以放大 OpenLayers 中的基础层?

java - com.jcraft.jsch.ChannelSftp.get(String src,String dst) 会覆盖现有文件吗?

javascript - 是否可以运行JavaScript(NodeJS)命令/函数,并在出现错误时让程序继续运行?

c# - 创建特定格式 Json 的正确方法

javascript - 存在哪些 JavaScript 对象到对象映射库?

java - 如何让客户端浏览器停止请求过期的 session ID?