我有一个带有控制器的Spring Boot应用程序,该控制器的端点接受一个对象作为参数,如下所示:
@RestController
public class MyController {
@PostMapping("/Student")
public String createStudent(@RequestBody Student student) {
//validate and persist Student object
return "ok";
}
}
我的问题是Student
对象有一个重载的setter方法,每当我POST到这个端点时,我得到一个Jackson错误,说有相互冲突的setter方法而且无法解析。
我在网上搜索过,似乎解决方案是将@JsonIgnore
添加到其中一个setter方法,但Student
对象来自第三方库,我根本无法编辑它。
那我怎么解决这个问题呢?是否有一种简单的“春天”方式使这项工作?我已经玩过修改Spring的Jackson HTTP消息转换器,但没有成功
使用MixIn
功能。
interface StudentMixIn {
@JsonIgnore
void setName(String name);
}
并在ObjectMapper
中注册,覆盖Jackson
消息转换器。
也可以看看: