Spring Boot接收前端json时,大小写问题导致传值为null

在SpringBoot项目中,由于默认的JSON解析器将键名转为小写,导致前端axios传递的json数据中的大写字段在后端接收为null。解决方法包括:前端调整键名为全小写,或者在后端实体类中使用@JsonProperty注解指定字段名。这两种方案都可以确保后端正确解析JSON数据。
摘要由CSDN通过智能技术生成

目录

问题

原因

解决办法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的值

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,如果接收到的MultipartFile为null,可能会有多种原因导致。一种常见的原因是在接口方法中未正确处理文件上传的请求参数。在你提供的示例中,错误示范的方法参数定义为MultipartFile profile,但实际上没有有效地接收到文件数据。这可能是因为请求中没有正确携带文件数据,或者文件上传的请求参数名称与方法参数不匹配。 另一种可能的原因是由于冲突导致null值。根据你提供的资料,有人认为这是接收器冲突引起的。你可以尝试采用其他解决办法,并避免使用Spring Boot自带的类。官方文档中提供了一些解决方法,你可以参考官方文档链接中的内容来解决该问题。 总的来说,解决Spring Boot接收MultipartFile为null问题可以有多种途径,具体取决于你的代码实现和具体情况。你可以参考一些解决方法或者查看相关的资料,以找到适合你的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决 springboot 上传头像后台接收 MultipartFile 为 null 问题](https://blog.csdn.net/qq_33695124/article/details/107122083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [问题记录1:Spring Boot 使用MultipartFile接收文件出现部分空指针的问题](https://blog.csdn.net/qq_36779436/article/details/93790024)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [解决springboot MultipartFile文件上传遇到的问题](https://download.csdn.net/download/weixin_38661852/12756905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值