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}
问题:-
当获取方法名称与字段名称完全匹配时,是否将使用jsonproperty名称? (例如:与访问说明符无关,即情况1)
当getter名称与字段名称不完全匹配时,将使用单独的属性名称吗? (一个用于getter方法,另一个用于公共字段[如果存在@JsonProperty,则使用json属性名称代替字段名称,否则使用默认名称))?
PS:案例2仅用于测试。
如果我在这里错了,有人可以纠正我。