我有一个带有控制器的Spring Boot应用程序,该控制器的端点接受对象作为参数,如下所示:
@RestController
public class MyController {
@PostMapping("/Student")
public String createStudent(@RequestBody Student student) {
//validate and persist Student object
return "ok";
}
}
我的问题是Student
对象有一个重载的setter方法,每当我发布到此端点时,我都会收到Jackson错误,指出存在冲突的setter方法,并且解析失败。
我已经在线搜索了,看来解决方法是将@JsonIgnore
添加到其中一种设置方法中,但是Student
对象来自第三方库,我根本无法对其进行编辑。 / p>
那么我该如何解决呢?有没有一种简单的“春季”方式可以完成这项工作?我曾经尝试过修改Spring的Jackson的HTTP消息转换器,但没有成功
答案 0 :(得分:2)
使用MixIn
功能。
interface StudentMixIn {
@JsonIgnore
void setName(String name);
}
并在覆盖ObjectMapper
消息转换器的Jackson
中注册它。
另请参阅: