将JSON转换为Java对象时出现设置器问题

时间:2018-07-09 08:43:07

标签: java json mapping backend

我正在尝试使用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,那么它将起作用。有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:1)

那是因为您已经使用@JsonProperty("bonusamount")重命名了字段,这意味着Jackson搜索了一个名为setBonusamount的方法(第一个字符为toUpperCase,其余保持不变)