我使用Jackson的Spring MVC应用程序生成@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;
}
并从控制器返回,它会生成JSON,其中包含正确的"type" : "foo"
或"type" : "bar"
,这正是我List<>
所需要的。
到目前为止我能找到的是http://www.studytrails.com/java/json/java-jackson-Serialization-list.jsp,他解释说我需要的是使用.writerWithType
方法来填充类型。
有没有办法强制spring填充JSON类型?