我正在尝试使用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,其余保持不变)