子类的Jersey和Jackson序列化不包括额外的属性
||
在Jersey中,当使用Jackson进行JSON序列化时,不包括实现子类的额外属性。例如,给定以下类结构
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.PROPERTY, property=\"@class\")
@JsonSubTypes({
@JsonSubTypes.Type(value = Foo.class, name = \"foo\")
}
public abstract class FooBase {
private String bar;
public String getBar() {
return bar;
}
public void setBar( String bar ) {
this.bar = bar;
}
}
public class Foo extends FooBase {
private String biz;
public String getBiz() {
return biz;
}
public void setBiz( String biz ) {
this.biz = biz;
}
}
和以下泽西岛代码
@GET
public FooBase get() {
return new Foo();
}
我回到下面的json
{\"@class\" => \"foo\", \"bar\" => null}
但是我真正想要的是
{\"@class\" => \"foo\", \"bar\" => null, \"biz\" => null}
另外,在我的web.xml中,我启用了POJOMappingFeature来解决此问题
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
编辑:修复了Java代码,以正确设置设置程序,而Foo不是抽象的
没有找到相关结果
已邀请:
2 个回复
拟僚疽刊剔
嫩昧竞莫
,您还可以使用JAXB注释类: