SpringBoot @RequestBody部分参数为空
前言
最近项目上遇到一个奇怪的问题,就是我传的json参数,而且用了Valid注解来校验参数,我确定这个参数传了,但是总是报这个参数不能为空,下面记录下解决方式
问题
下面是我的实体类里的两个字段,其他字段都没问题,都有值,唯独这俩字段没有值
1 | /** |
所以我第一想到的是不是json转bean的问题,这样的参数命名是不是又问题,我把C改成小写,发现没有问题,多次测试后发现,如果参数第一个字母为小写,第二个字母为大写,就不能正常的从JSON中解析出来,如:xCoordinate,aLame,bId
等参数都不能被正常的解析,而mySelf,poType
等最前面不止一个字母小写的情况是可以用的
解决方案
方案一:改名字,第二个大写的改成小写或者改成其他名字(如果引用较多,改动较大,影响比较大)
方案二:加上@JsonProperty注解,指定某个方法JSON转换时的名字,上述实体类将修改为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/**
* x轴坐标
*/
private String xCoordinate;
/**
* y轴坐标
*/
private String yCoordinate;多加了这个注解
@JsonProperty(value = "yCoordinate")
,问题解决