【发布时间】:2015-03-11 15:31:11
【问题描述】:
我有 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
现在,如果我直接从控制器返回 List<ParentClass>,它不包含类型。
另一方面,如果我有类似的对象
public class HigherClass {
public List<ParentClass> parentClass;
}
并从控制器返回它,它会生成带有正确 "type" : "foo" 或 "type" : "bar" 的 JSON,这正是我在 List<> 的情况下所需要的。
到目前为止我能找到的是http://www.studytrails.com/java/json/java-jackson-Serialization-list.jsp,他解释说我需要使用.writerWithType 方法来填充类型。
有什么办法可以强制spring用类型填充JSON?
【问题讨论】:
标签: spring spring-mvc jackson