使用Spring 3和Jackson 1.7.6,我可以序列化一个抽象类的实现并输出该类的完全限定名称作为名为@class
的属性。当我的Spring控制器从一个用@ResponseBody
注释的控制器返回一个实例时,这工作正常。@JsonTypeInfo可以与Collections一起使用吗?
当返回根据所得JSON改变了上述的类型,其类型被序列化(从每个子类字段存在)的Collection
,但它不包括@class
属性,它我们的客户代码需要。
如何在返回集合时将此类型提示导入序列化的JSON?
//Returns complete with @class=com.package.blah
@RequestMapping("/json/getProduct.json")
public @ResponseBody Product getProduct(Integer id)
{
return service.getProduct(id);
}
//Does not include @class
@RequestMapping("/json/getProducts.json")
public @ResponseBody List<Product> getProducts()
{
return service.getProducts();
}