目录

问题

原因

解决办法1

解决办法2

问题

小编在完成毕业设计时遇到的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字段,其他字段均可以取到值

image-20230408172030770

输出结果为:

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
}

则后端输出

image-20230408172336683

这里可以看到成功读取到了did的值

解决办法2

前端传值不变

{
	dId: 7
}

后端在实体类Student中改为

@JsonProperty("dId")
private Integer dId;

添加@JsonProperty(“属性名”)注解

@JsonProperty是jackson-databindjar包提供的注解,用于实体类的属性上, 功能是把属性名称转换为另一个名称(即,两个名称都指向同一个变量值)

输出结果为

image-20230408173016539

可以看到成功读取了dId的值

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:20 天前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐