仅在java中序列化时重命名字段
我有一个名为AddOnsSRO的对象。只有在序列化时,我才希望更改对象字段的名称 尝试在getter方法上使用@JsonProperty,但即使在不涉及序列化的情况下,它也会给我一个重命名的字段仅在java中序列化时重命名字段,java,json,spring,serialization,annotations,Java,Json,Spring,Serialization,Annotations,我有一个名为AddOnsSRO的对象。只有在序列化时,我才希望更改对象字段的名称 尝试在getter方法上使用@JsonProperty,但即使在不涉及序列化的情况下,它也会给我一个重命名的字段 public class AddOnsSRO { private String sideCar; private String sideCarCoverage; @JsonSerialize @JsonProperty("abc") public String
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
请提供相应的帮助和建议更改或注释。仅用于实现序列化,而不是
@JsonProperty
@JsonGetter("abc")
public String getSideCar() {
return sideCar;
}
Getter意味着当序列化具有此方法的类的对象实例(可能继承自超类)时,将通过该方法进行调用,并且返回值将序列化为属性的值
您可以将@JsonSetter
添加到setter方法以进行反序列化:
@JsonSetter("sideCar")
public void setSideCar(String sideCar) {
this.sideCar = sideCar;
}
你的代码看起来不错…请升级你的jackson库。。。如果您使用的是旧版您是否正在与jackson library合作?@AkinerAlkan yesMaybe您可以试试@AkinerAlkan我在哪里使用这个…请确实建议更新相同的代码,您所说的“即使在使用时也给我一个重命名的字段”是什么意思<代码>附件SRO x;x、 getSideCar()代码>不起作用?@ankur43加载项设置器value@ankur43添加了回答问题的
@JsonSetter