@RequestBody 实体类接收参数为null
-
比较基础的错误就是实体类没有get set方法或没有实现序列化接口,或者Controller漏掉了@RestController注解。
这个也是很容易排查出来的,我们直接去看编译出来的class文件 看看有没有编译成功 。 -
字段名是否首字母为小写 第二个字母为大写
解决方法 :在实体类上加上注解
@JsonProperty(value = “属性名”)
第一个字母为小写 第二个为大写时,RequestBody会为null,这是jackson的bug,
用@JsonProperty指定json key名例:
// import com.fasterxml.jackson.annotation.JsonProperty; @JsonProperty(value = "eDepotId") private String eDepotId;
-
@RequestBody导错包了,导入的swagger包的@RequestBody注解。
(网上几乎没人提过这点, 调了大半个小时才发现。。。)
@JsonIgnore子类同属性名被忽略的问题
例如 Animal实体类的String name字段 用了@JsonIgnore注解 ,
Dog类继承Animal 且 Dog类不希望被忽略name字段,
那需要在Dog类中再写一个String name 字段,并且在字段上面用 @JsonIgnore(value = false) ,
这样Animal的name还是保持被忽略 ,Dog的name不会被忽略