使用 Jackson Json 在 Spring MVC 中填充对象类型
Populate object type in SpringMVC using JacksonJson
我有 Spring MVC 应用程序使用 Jackson 生成 @ResponseBody 作为 JSON。
我有以下继承:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
public abstract class ParentClass
@JsonTypeName("foo")
public class Foo extends ParentClass
@JsonTypeName("bar")
public class Bar extends ParentClass
现在如果我直接从控制器 return List<ParentClass>
它不包含类型。
另一方面,如果我有这样的对象
public class HigherClass {
public List<ParentClass> parentClass;
}
和 return 它从控制器生成 JSON,其中包含适当的 "type" : "foo"
或 "type" : "bar"
,这正是我在 [=17 的情况下所需要的=].
到目前为止我能找到的是 http://www.studytrails.com/java/json/java-jackson-Serialization-list.jsp 他解释说我需要的是使用 .writerWithType
方法来填充类型。
有什么方法可以强制 spring 使用类型填充 JSON 吗?
这是在 Spring 或 Jackson 本身中发现的错误。
关于此的问题是在 spring Jira 上创建的以获取更多详细信息
我有 Spring MVC 应用程序使用 Jackson 生成 @ResponseBody 作为 JSON。
我有以下继承:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
public abstract class ParentClass
@JsonTypeName("foo")
public class Foo extends ParentClass
@JsonTypeName("bar")
public class Bar extends ParentClass
现在如果我直接从控制器 return List<ParentClass>
它不包含类型。
另一方面,如果我有这样的对象
public class HigherClass {
public List<ParentClass> parentClass;
}
和 return 它从控制器生成 JSON,其中包含适当的 "type" : "foo"
或 "type" : "bar"
,这正是我在 [=17 的情况下所需要的=].
到目前为止我能找到的是 http://www.studytrails.com/java/json/java-jackson-Serialization-list.jsp 他解释说我需要的是使用 .writerWithType
方法来填充类型。
有什么方法可以强制 spring 使用类型填充 JSON 吗?
这是在 Spring 或 Jackson 本身中发现的错误。 关于此的问题是在 spring Jira 上创建的以获取更多详细信息