You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.2.3(Kotlin)单属性DTO反序列化400错误原因咨询

Kotlin单参数类Spring接口反序列化失败原因分析

核心问题

这是Spring依赖的Jackson序列化库对Kotlin单参数类的默认处理逻辑导致的:

  • 当你的UserByTokenRequest类只有单个参数的主构造器时,Jackson会默认把这个构造器识别为「字符串转该类实例的转换器」,而非用来解析JSON对象的构造器。
  • 当你发送{"apiToken":"xxx"}这类JSON对象请求体时,Jackson会尝试把整个JSON对象转换成字符串传入构造器,这显然和构造器期望的字符串参数不匹配,因此抛出HttpMessageNotReadableException错误。

为什么两种操作能解决问题

  • 新增第二个属性:此时类的主构造器参数数量≥2,Jackson会自动切换到正常的「属性匹配模式」,按照JSON字段和类属性的对应关系解析请求体,自然就能正确识别apiToken字段。
  • 给apiToken添加@JsonProperty注解:这个注解明确告诉Jackson,构造器的该参数对应JSON中的apiToken字段,强制Jackson按照对象属性的逻辑解析请求体,而非把构造器当作字符串转换器。

内容的提问来源于stack exchange,提问作者Vahid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:58:20