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

Spring @Post方法接收数据为NULL问题求助

问题分析与解决

你遇到的核心问题是:Post请求新增笔记时请求体数据被接收为NULL,但相同参数用在Put请求更新时正常,以下是具体排查和解决步骤:

1. 检查Postman请求头配置

Post请求必须将Content-Type设置为application/json。很多时候Put请求之前已配置该头,而Post请求遗漏,导致Spring无法解析JSON格式的请求体,直接返回NULL。

2. 排查@Builder注解的冲突问题

@Builder与@AllArgsConstructor、@NoArgsConstructor混用可能导致Jackson无法正确实例化NoteDto对象,解决方式二选一:

  • 给每个字段添加@JsonProperty注解,明确JSON字段映射关系:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NoteDto {
  @JsonProperty("noteId")
  private int noteId;
  @JsonProperty("topic")
  private String topic;
  @JsonProperty("noteBody")
  private String noteBody;
}
  • 临时移除@Builder注解测试,若Post请求能正常接收数据,说明是该注解导致的问题,后续可调整建造者实现逻辑。

3. 核对请求体JSON格式

确保Postman发送的JSON字段名与NoteDto完全一致(大小写敏感),比如不要把noteBody写成notebody或note_body。新增笔记时noteId可不用传递(通常由数据库自增生成),正确请求体示例:

{
  "topic": "Spring MVC学习笔记",
  "noteBody": "请求体解析常见问题汇总"
}

4. 确认JSON依赖完整性

若项目未引入jackson-databind依赖,Spring无法处理JSON序列化/反序列化,会导致请求体解析失败。Maven项目需确保包含以下依赖:

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

5. 调试mapToEntity方法

检查mapToEntity方法是否处理了noteDto为NULL的情况,比如是否存在错误的赋值逻辑,或未对NULL参数做判断导致数据丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:55:18