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序列化子对象时非常适合我。