Spring Boot接收前端json时,大小写问题导致传值为null
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
目录
问题
小编在完成毕业设计时遇到的Spring Boot+Vue出现的前端通过axios向后端传递json数据,因为Spring Boot对json数据大小写解析问题,导致后端接收值时为null
前端传值为:
{
classes: 1
dId: 7
department: 1
gender: "男"
major: 1
name: "1"
nation: 1
password: "1"
phone: 1
username: "1"
}
而后端接收时,除了dId字段,其他字段均可以取到值
输出结果为:
Student(id=null, username=1, password=1, name=1, gender=男, nation=1, phone=1, department=1, major=1, classes=1, dId=null, leaveSchool=null)
这里可以看到所有的字段除了dId读取为null,其余的均可以读到
原因
在csdn上搜索大家遇到的发现应该是springboot,默认的json解析器,将大小写转换为小写
解决办法1
如果将前端的值传为
{
did: 7
}
则后端输出
这里可以看到成功读取到了did的值
解决办法2
前端传值不变
{
dId: 7
}
后端在实体类Student中改为
@JsonProperty("dId")
private Integer dId;
添加@JsonProperty(“属性名”)注解
@JsonProperty是jackson-databindjar包提供的注解,用于实体类的属性上, 功能是把属性名称转换为另一个名称(即,两个名称都指向同一个变量值)
输出结果为
可以看到成功读取了dId的值
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:20 天前 )
960b763e
3 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)