【发布时间】:2013-06-19 06:57:52
【问题描述】:
假设我有一个域类:
public class Zoo{
private List<Animal> animals;
....
其中 Animal 是具有不同实现(Cat、Dog)的接口。假设我希望能够保存 Zoo 对象:
@RequestMapping(value = "/zoo", method = RequestMethod.POST)
public @ResponseBody void save(@RequestBody Zoo zoo) {
....
我想发送一个 json - 比如:
{
animals:[
{type:'Cat', whiskers-length:'3'},
{type:'Dog', name:'Fancy'}
]
}
如何告诉 spring MVC 在 type=='Cat' 时将动物映射到 Cat 类型,并在 type=='Dog' 时将其映射到 Dog 类?
【问题讨论】:
-
很抱歉与无效的 json 混淆。但它仍然没有解决我的问题,即从 json 对象 {type:'Cat',whiskersLength:'3'} 到 Cat 类的映射。 Zoo 类只知道动物列表包含动物。但是 json 反序列化器如何知道特定 json 对象使用 Animal 接口(Dog 或 Cat)的哪个实现?
标签: java json spring spring-mvc