我正在尝试使用com.fasterxml.jackson.core将下面的简单JSON转换为Java对象。我对奖金金额字段设置器方法有问题。
杰森:
{"amount":332.5, "bonusamount":3, "action":"Spend"}
爪哇类:
@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;
}
当我尝试使用它时,奖金金额字段的值为 NULL,但是如果我将 setter 方法的名称从 setBonusAmount 更改为 setBonusamount,那么它可以工作。有人可以告诉我为什么吗?
这是因为您使用@JsonProperty("bonusamount")
重命名了字段,这意味着杰克逊搜索名为setBonusamount
的方法(第一个字符到大写,其余保持不变(