Java @SerializedName未与子类一起反映 import com.google.gson.annotations.SerializedName 班级家长{ @序列化名称(“家乡”) 私人串故乡; //接球手和接球手 } 类子级扩展父级{ }

Java @SerializedName未与子类一起反映 import com.google.gson.annotations.SerializedName 班级家长{ @序列化名称(“家乡”) 私人串故乡; //接球手和接球手 } 类子级扩展父级{ },java,gson,fasterxml,Java,Gson,Fasterxml,当我们检查/打印/记录子对象时,它有如下内容: {"homeTown":"blahblah"} 鉴于我们的期望是: {"home_town":"blahblah"} 现在,如果我们在子类中重写父类的getter方法,并使用@JsonProperty(“home\u town”)进行注释,那么它就可以工作了 import com.fasterxml.jackson.annotation.JsonProperty class Child extends Parent { @Override

当我们检查/打印/记录子对象时,它有如下内容:

{"homeTown":"blahblah"}
鉴于我们的期望是:

{"home_town":"blahblah"}
现在,如果我们在子类中重写父类的getter方法,并使用
@JsonProperty(“home\u town”)
进行注释,那么它就可以工作了

import com.fasterxml.jackson.annotation.JsonProperty

class Child extends Parent {
  @Override
  @JsonProperty("home_town")
  public String getHomeTown(){
    return super.getHomeTown();
  }
}
我一直期望
@SerializedName
首先也应该通过继承来处理子类,我不太明白为什么它只通过重写getter方法和用
@JsonProperty
注释来工作


谢谢你的帮助

我通过对父类中的所有getter使用@JsonProperty解决了这个问题,如下所示:

class Parent {
    @SerializedName("home_town")
    private String homeTown;
    // getters & setters

    @JsonProperty("home_town")
    public String getHomeTown(){
        return homeTown;
    }
}

class Child extends Parent {

}

这就是我实现目标的方式,这样我就不需要接触子类。

我通过在父类中的所有getter上使用@JsonProperty解决了这个问题,如下所示:

class Parent {
    @SerializedName("home_town")
    private String homeTown;
    // getters & setters

    @JsonProperty("home_town")
    public String getHomeTown(){
        return homeTown;
    }
}

class Child extends Parent {

}

这就是我实现目标的方式,这样我就不需要接触子类。

如何序列化对象?你用的是格森还是杰克逊?请更新问题中的代码
@SerializedName(“home_town”)
在使用GSON序列化子对象时对我来说效果非常好。您如何序列化该对象?你用的是格森还是杰克逊?请更新问题中的代码
@SerializedName(“home_town”)
在使用GSON序列化子对象时非常适合我。