解决MappingJackson2HttpMessageConverter忽略json多余未知属性问题

java | 2021-11-19 16:40:58

在controller 中 @RequestBody  传进来的参数如果在 bean中没有,那么会返回400错误

思考一:我第一个想的是不是所有的项目都这样

毫不犹豫创建了一个spring boot项目写了个controller,使用postman测试,并没有这个问题

那就是这个项目的配置问题

思考二:@RequestBody 传入的json反序列化成bean,干这个事情的就是MappingJackson2HttpMessageConverter,找找这个配置

果然找到自定义配置了MappingJackson2HttpMessageConverter

解决方法1(推荐):

添加配置,属性未知的情况不报错

//解决前端传入json属性在bean中不存在导致 调用controller 400错误 20211119 houyong
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);

MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter(objectMapper);

测试了一下果然可以

网上方法二:

在bean上添加@JsonIgnoreProperties(ignoreUnknown = true)

也可以但是要每个bean都添加

登录后即可回复 登录 | 注册
    
关注编程学问公众号