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

Java Object Mapper反序列化问题:message字段映射为null原因排查

问题原因及修复方案

核心问题:字段与 getter/setter 逻辑不匹配

你的SystemEvent类存在字段定义和 getter/setter 方法不对应的错误:

  • 类中声明的是private String message;字段
  • 但getMessage()返回的是未声明的msgId变量,setMessage()也是给msgId赋值
  • 而toString()方法输出的是message字段,导致最终显示null

执行流程拆解

  1. 序列化时:
    ObjectMapper通过 getter 方法名映射JSON字段,getMessage()对应JSON里的"message"键,所以会把msgId的值(测试中设置的"msg123")写入JSON,因此序列化结果正常。

  2. 反序列化时:
    ObjectMapper根据JSON的"message"键调用setMessage(),但该方法只修改msgId,完全没碰message字段,所以toString()输出时message自然是null。

修复代码

修正 getter/setter 方法,使其操作正确的message字段:

public String getMessage() {
    return this.message;
}

public void setMessage(String message) {
    this.message = message;
}

同时注意:当前代码中未声明msgId字段,编译时会报错,这也是笔误导致的问题,修正后即可解决反序列化后message为null的情况。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:01:18