我正在尝试使用com.fasterxml.jackson.core将以下简单JSON转换为Java Object。我对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的方法(第一个字符为toUpperCase,其余保持不变)

07-24 13:48