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

Spring返回的JSON为何存在域对象中没有的name字段?

问题原因与Jackson序列化逻辑

你观察到的现象是Spring Web默认使用的Jackson JSON序列化库遵循Java Bean命名约定的默认行为,具体生成规则如下:

  • Jackson默认的序列化策略会扫描待序列化对象的所有public无参方法,筛选出符合Java Bean getter规范的方法:方法名以get开头(boolean类型方法可以以is开头)、无入参、返回值非void。
  • 对符合规则的getter方法,Jackson会取方法名中去除前缀后的部分,将首字母转为小写,作为输出JSON的字段名,方法的返回值就是该字段的取值。
  • 你的Employee类中存在public String getName()方法,按规则去除get前缀后得到字符串Name,首字母转小写后就是name,因此会自动生成对应的JSON字段,和Employee类本身是否存在name成员属性没有直接关系。

举个对照示例:
若方法名为public String getFirstName(),处理后得到的JSON字段名为firstName;若方法名为public boolean isActivated(),处理后得到的JSON字段名为activated。

如果不需要序列化该字段,可以用两种方式处理:

  • 在getName()方法上添加@JsonIgnore注解,Jackson会跳过该方法的序列化逻辑
  • 修改Jackson全局序列化配置,将属性检测规则改为只扫描类的成员字段,不自动识别getter方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:18:02