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

POST请求添加电影评论时RequestBody接收值为null问题求助

解决@RequestBody接收CommentDto字段全为null的问题

以下是针对该问题的排查和解决方案:

1. 确认请求头Content-Type是否正确

Spring的@RequestBody注解默认仅处理application/json类型的请求体。如果请求发送的是multipart/form-data或application/x-www-form-urlencoded格式,会直接导致字段绑定失败,全部返回默认值。

  • 解决:发送请求时必须携带请求头 Content-Type: application/json。

2. 检查CommentDto的@JsonProperty映射与请求体字段名是否匹配

如果CommentDto使用了@JsonProperty指定字段名,必须确保请求体中的JSON字段名与注解值完全一致:

  • 示例:若Dto中写@JsonProperty("movie_id") private Long movieId;,请求体中必须传"movie_id": 123,而非"movieId": 123;
  • 若希望Spring自动处理驼峰与下划线的转换,可在配置文件中添加:
    spring:
      jackson:
        property-naming-strategy: SNAKE_CASE
    
    此时Dto的驼峰字段movieId会自动匹配请求体中的movie_id字段。

3. 确保CommentDto具备无参构造方法和完整的getter/setter

Spring的JSON消息转换器(Jackson)需要通过无参构造方法实例化Dto对象,再通过setter方法完成赋值:

  • 手动添加无参构造和所有字段的getter/setter;
  • 或使用Lombok的@Data+@NoArgsConstructor注解简化代码(需确保Lombok依赖已正确引入)。

4. 验证请求体的JSON格式合法性

请求体的JSON语法错误或字段拼写错误会直接导致解析失败:

  • 检查是否存在遗漏的逗号、不匹配的引号;
  • 核对字段名拼写(比如把comment写成commet,rating写成rate等);
  • 正确请求体示例:
    {
      "movieId": 1,
      "rating": 5,
      "comment": "这部电影很棒!"
    }
    

5. 确认Spring Boot依赖完整性

确保项目依赖中已引入spring-boot-starter-web,它包含了Jackson JSON解析所需的核心包:

  • Maven依赖示例:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:59:58