@SerializedName 未与 Child class 一起反映

@SerializedName not reflecting with Child class

import com.google.gson.annotations.SerializedName

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

class Child extends Parent {
}

当我们 check/print/log child 对象时,它有类似的东西:

{"homeTown":"blahblah"}

而我们的期望是:

{"home_town":"blahblah"}

现在,如果我们在子 class 中覆盖父 class 的 getter 方法并使用 @JsonProperty("home_town") 进行注释,那么它就可以工作了

import com.fasterxml.jackson.annotation.JsonProperty

class Child extends Parent {
  @Override
  @JsonProperty("home_town")
  public String getHomeTown(){
    return super.getHomeTown();
  }
}

我一直期待 @SerializedName 应该首先通过 inheritance 与 Child class 一起工作,我有点困惑为什么它会起作用仅通过覆盖 getter 方法并使用 @JsonProperty

进行注释

感谢您的帮助!

我已经通过在 parent class 中的所有吸气剂上使用 @JsonProperty 解决了这个问题,如下所示:

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

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

class Child extends Parent {

}

这就是我实现 objective 的方式,这样我就不需要触及 Child class。