使用@RequestBody注解接收的实体类中的某些参数为null

原因

postman调试接口

为null的参数命名不符合“驼峰法”,类似实体类A的属性 cEnterpriseId ,这种命名是不规范的

和lombook的@Data注解有关

用postman传一个json到接口,json在传输过程中会被转为“字节流”,接口controller层的@RequestBody加在实体类参数前面,会把接收到的字节流反序列成为一个java实体类。@RequestBody在反序列化的时候给实体类赋值使用的get/set方法是idea自动生成的get/set方法,即:getcEnterpriseId()/setcEnterpriseId(),

所以@RequestBody是用setcEnterpriseId()给是实体类A赋值,但在A类中setcEnterpriseId()是不存在的,A类中通过lombook的@Data注解生成的只有setCEnterpriseId()方法

setcEnterpriseId() 不等于 setCEnterpriseId(),所以赋值失败

解决

 方法一:在属性上加@JsonProperty注解

 

 方法二:手动在实体类添加get / set方法,不用lombook自动生成的

方法三:把postman传参的cEnterpriseId改成小写centerpriseId

posted on 2023-01-10 10:14  无言寒冰  阅读(986)  评论(0编辑  收藏  举报