Spring MVC的@RequestBody到接口而不是类(Spring MVC @Request

2019-10-21 15:20发布

伙计们,

此代码剪断的作品:

@RequestMapping(method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<List<Member>> findByMemberKeyOrUniqueMemberId(

需要注意的是“会员”是一个接口,而不是一类。

这是行不通的。

@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<String> save(@RequestBody final List<Member> members) {

所以,我可以把大家变成JSON,但我不能接受JSON成会员。 如果我改变从列表中保存的参数传递给会员的一个类的列表,然后它工作正常,但它确实打乱了我的代码。

我怎样才能解决这个问题?

Answer 1:

杰克逊不能(这是不可行的)猜测哪些Member使用反序列化JSON的实现。

杰克逊提供@JsonTypeInfo的方式来描述你的继承层次结构,并给它提示了如何反序列化JSON。 然而,这需要您修改JSON和添加这些提示。 这是在文档中解释说, 这里 。



文章来源: Spring MVC @RequestBody into an Interface instead of a class