Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在java中序列化时重命名字段_Java_Json_Spring_Serialization_Annotations - Fatal编程技术网

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

仅在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

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


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

仅用于实现序列化,而不是
@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