gpt4 book ai didi

java - 仅在 java 序列化时重命名字段

转载 作者:行者123 更新时间:2023-12-02 10:19:38 25 4
gpt4 key购买 nike

我有一个名为 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;
}
}

仅在序列化时以下字段:sideCarsideCarCoverage 必须重命名为 abc分别为 xyz

对于除序列化之外的任何其他用途,字段名称应仅为 sideCarsideCarCoverage

请提供帮助并提出相应的更改或注释建议。

最佳答案

仅影响序列化使用 @JsonGetter而不是@JsonProperty

@JsonGetter("abc")
public String getSideCar() {
return sideCar;
}

Getter means that when serializing Object instance of class that has this method (possibly inherited from a super class), a call is made through the method, and return value will be serialized as value of the property.

您可以将@JsonSetter添加到setter方法中进行反序列化:

@JsonSetter("sideCar")
public void setSideCar(String sideCar) {
this.sideCar = sideCar;
}

关于java - 仅在 java 序列化时重命名字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54434294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com