最近在用Spring Web做一些Restful API的实现试验,碰到了@RequestBody 的JSON无法被正常反序列化的问题。服务端的代码大致如下:研究后发现,由于Aqua这个实体类缺少了默认的无参构造函数,Spring Web默认使用的JSON序列化框架-Jackson就无法正常反序列化。此时服务器会返回400 Bad Request.解决的方法很多,比较简单直接的方法是在Aqua这个实体类里面加一个无参的构造函数。比较复杂的也可通过向Jackson添加强制的转换器的方法让Jackson理解这个JSON对象。加上这两个注解之后,Jackson不需要无参构造函数也可以正常反序列化JSON了。@JsonProperty注解也可以帮助Jackson理解JSON属性名和实体类中的变量名不一致的情况。所以会造成配置之后无效果的问题。笔者Spring版本为5.0.3maven依赖如下方法2 ,看看你的文件字符编码是否正确?

基于Spring Web Jackson对RequestBody反序列化失败的解决

基于Spring Web Jackson对RequestBody反序列化失败的解决

基于Spring Web Jackson对RequestBody反序列化失败的解决