如何在json序列化中使用getter方法名称来考虑@JsonProperty(“ name”)?

时间:2019-01-07 12:38:51

标签: java serialization jackson2

Spring Boot和Java的新手。

进行杰克逊序列化时,遇到以下问题。

“当字段为具有匹配/不匹配的getter方法名称的公共/私有字段时,如何处理JsonProperty名称?”

案例1:-

public class FeedbackRequest {

   @JsonProperty("vzIdCurrentValue")
   private/public String vzId;

    public String getVzId() {
    return vzId;
}

public void setVzId(String vzId) {
    this.vzId = vzId;
}

}

案例2:-

public class FeedbackRequest {

   @JsonProperty("vzIdCurrentValue")
   public String vzIdValue;

    public String getVzId() {
    return vzIdValue;
}

public void setVzId(String vzId) {
    this.vzIdValue = vzId;
}   
}

反序列化结果:-

情况1:-{ "vzIdCurrentValue": null}

情况2:-{"vzId": null, "vzIdCurrentValue": null}

问题:-

  1. 当获取方法名称与字段名称完全匹配时,是否将使用jsonproperty名称? (例如:与访问说明符无关,即情况1)

  2. 当getter名称与字段名称不完全匹配时,将使用单独的属性名称吗?   (一个用于getter方法,另一个用于公共字段[如果存在@JsonProperty,则使用json属性名称代替字段名称,否则使用默认名称))?

PS:案例2仅用于测试。

如果我在这里错了,有人可以纠正我。

0 个答案:

没有答案