我有一个名为 AddOnsSRO 的对象。仅在序列化时,我希望更改对象的字段名称。尝试在 getter 方法上使用@JsonProperty,但即使在不涉及序列化的用法中,它也给了我一个重命名的字段。public class AddOnsSRO { private String sideCar; private String sideCarCoverage; @JsonSerialize @JsonProperty("abc") public String getSideCar() { return sideCar; } public void setSideCar(String sideCar) { this.sideCar = sideCar; } @JsonSerialize @JsonProperty("xyz") public String getSideCarCoverage() { return sideCarCoverage; } public void setSideCarCoverage(String sideCarCoverage) { this.sideCarCoverage = sideCarCoverage; }}仅在序列化时,以下字段 :sideCar和sideCarCoverage必须分别重命名为abc和xyz。对于除序列化之外的任何其他用途,字段名称应该是sideCar且sideCarCoverage仅。请帮助并建议相应的更改或注释。
2 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
为了只影响序列化,请使用@JsonGetter而不是@JsonProperty
@JsonGetter("abc")
public String getSideCar() {
return sideCar;
}
Getter 是指在序列化具有该方法的类的 Object 实例时(可能继承自超类),通过该方法进行调用,并将返回值序列化为属性值。
您可以添加@JsonSetter到 setter 方法进行反序列化:
@JsonSetter("sideCar")
public void setSideCar(String sideCar) {
this.sideCar = sideCar;
}
添加回答
举报
0/150
提交
取消
