Vik*_* K. 18 java spring json spring-mvc
假设我有一个域类:
public class Zoo{
private List<Animal> animals;
....
Run Code Online (Sandbox Code Playgroud)
其中Animal是具有不同实现的接口(Cat,Dog).假设我希望能够保存Zoo对象:
@RequestMapping(value = "/zoo", method = RequestMethod.POST)
public @ResponseBody void save(@RequestBody Zoo zoo) {
....
Run Code Online (Sandbox Code Playgroud)
我想发送一个json - 类似于:
{
animals:[
{type:'Cat', whiskers-length:'3'},
{type:'Dog', name:'Fancy'}
]
}
Run Code Online (Sandbox Code Playgroud)
当键入=='Cat'时,如何告诉spring MVC将动物映射到Cat类型,并在键入=='Dog'时将其映射到Dog类?
nic*_*ild 21
您应该使用Jackson注释@JsonTypeInfo并@JsonSubTypes实现多态json.注释在Animal基类上进行.
@JsonTypeInfo(use = Id.NAME, include = As.PROPERTY, property = "type")
@JsonSubTypes({@JsonSubTypes.Type(value = Dog.class, name = "Dog"),
@JsonSubTypes.Type(value = Cat.class, name = "Cat")})
public abstract class Animal {
}
Run Code Online (Sandbox Code Playgroud)
现在有一个更简单的注释:
@JsonRootName("dog")
public class Dog extends Animal {...}
Run Code Online (Sandbox Code Playgroud)
注释的参考可以在fastxml.github上找到
| 归档时间: |
|
| 查看次数: |
9304 次 |
| 最近记录: |