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

Spring API POST请求JSON解析异常:Foo对象id字段始终为null

Spring接口接收JSON时字段值为null的解决办法

针对你遇到的接口接收Foo对象后id字段始终为null的问题,可从以下几个方向排查解决:

1. 字段访问权限与Jackson序列化问题

Foo类中的id字段为包私有访问权限,Jackson默认无法直接访问非public字段,即使有Lombok的@Setter注解也可能出现反序列化失败。

解决办法:

  • 给字段添加@JsonProperty注解,明确指定Jackson序列化/反序列化时的字段名:
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import com.fasterxml.jackson.annotation.JsonProperty;

@Getter @Setter
@AllArgsConstructor
@NoArgsConstructor
public class Foo {
    @JsonProperty
    String id;
}
  • 或者直接将字段改为public权限:
public String id;

2. Lombok注解生效验证

Lombok未正确生成getter/setter方法也会导致字段无法被赋值,需确认:

  • 项目依赖中已引入Lombok:
    Maven依赖:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

Gradle依赖:

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
  • IDE已启用Lombok支持:比如IDEA需安装Lombok插件,并开启Settings > Build, Execution, Deployment > Compiler > Annotation Processors中的Enable annotation processing选项。

3. Jackson依赖检查

Spring Boot项目中spring-boot-starter-web已包含Jackson依赖,无需额外引入;若为普通Spring项目,需手动添加Jackson核心依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:36:07