Cannot deserialize value of type java.lang.Integer from Object value (token JsonToken.START_OBJECT)

在Spring框架中,当你遇到HttpMessageNotReadableException这样的错误,通常是因为Spring的HTTP消息转换器(如Jackson)无法将接收到的JSON数据正确地映射到你的控制器方法的参数上。在你的情况中,错误消息“Cannot deserialize value of type java.lang.Integer from Object value (token JsonToken.START_OBJECT)”明确指出,JSON解析器期望得到一个整数值,但却收到了一个对象(即JSON对象,以{开始,以}结束)。
这个问题通常发生在以下几种情况:
控制器方法的参数类型与JSON结构不匹配:你的控制器方法可能期望一个整数(Int或Integer),但发送的JSON是一个对象。
请求映射可能错误:可能你的请求没有正确映射到期望的控制器方法,或者你的前端发送了错误的请求体或请求头。

解决方案:
方案一:调整JSON结构
如果你的控制器方法只需要detId的值,你应该确保发送的JSON是一个简单的整数值或者是一个包含单个整数字段的JSON对象,但你的方法应该能够处理这种结构。然而,由于你提到的是Int类型,最简单的方式是直接发送整数值:

1

方案二:将Controller层的接口入参设置成对象,使用@RequestBody解析入参,映射到对象中

@PostMapping("/someEndpoint")  
public ResponseEntity<?> someMethod(@RequestBody DetIdWrapper detIdWrapper) {  
    Integer detId = detIdWrapper.getDetId();  
    // 你的逻辑  
    return ResponseEntity.ok().build();  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值