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