SpringBoot @RequestBody 注入失败

在SpringBoot项目中遇到一个问题,当用户POST提交JSON格式数据时,使用@RequestBody注解无法正确注入参数。原因在于JSON字段名称为大写开头,而实体类字段默认转换为小写。解决方法是在实体类字段上添加@JsonProperty注解,指定与JSON匹配的字段名,从而成功注入。修改后的实体类如示例所示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首发地址:https://www.hsmus.top/202107283.html
学习中,如有错误,欢迎留言斧正,谢谢~

在项目中遇到了用户Post了json格式的数据给服务器,但是用@RequestBody 并没有注入成功参数;

用户传入的Json如下

{"AccTrType":"2","Number":1,"AccTrAmt":"1500","mem":""}

实体类如下

public class PayInfos implements Serializable {
	
	//交易类型
	private String AccTrType;
	//数量
	private int Number;
	//金额
	private String AccTrAmt;
	//备注
	private String mem;

        // setter...getter...
        
}

解决方案:
因为Json中传的字段是大写字母开头的,SpringBoot在注入的时候弄成了小写,所以注入失败了。
在需要注入的字段上加上 @JsonProperty("AccTrType") 即可。

解决后的实体类如下:

public class PayInfos implements Serializable {
	
	private static final long serialVersionUID = 1L;
	//交易类型
	@JsonProperty("AccTrType")
	private String AccTrType;

	//数量
	@JsonProperty("Number")
	private int Number;

	//金额
	@JsonProperty("AccTrAmt")
	private String AccTrAmt;
	//备注
	@JsonProperty("mem")
	private String mem;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值