@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。
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。