1 RequestBody 实体类接收不到参数原因总结
错误原因是导入的swagger包的@RequestBody注解
以下为转载:
比较基础的错误就是实体类没有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不会被忽略
————————————————
版权声明:本文为CSDN博主「孟秋与你」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36268103/article/details/111577816
文章评论