我的@RequestBody注释没有解析我的对象

问题描述 投票:0回答:1

我遇到了一个问题,我发送一个带有 Json 主体的请求,并且解析器没有将该 Json 更改为所需的 Java 对象,而是返回该对象,所有参数均为 null:

这是邮递员的要求:

POST http://localhost:8084/api/user/user

body: {
    "name": "Santiago",
    "email": "yes",
    "number": "4",
    "password": "rftgybn",
    "date_of_birth": "2024-11-06T12:30:00Z",
    "location": "Medellin"
}


这是我制作的 springboot 过滤器显示的请求(我这样做是为了验证请求是否正确,问题在制作该过滤器之前就存在):

POST "/api/user/user", parameters={}

Request Body: {
  "name": "string",
  "email": "string",
  "number": "string",
  "password": "string",
  "date_of_birth": "2024-11-07T11:27:15.086Z",
  "location": "string"
}

这是我的 DTO 对象:

@Getter
@ToString
@NoArgsConstructor
public class UserRegisterRequestDTO {
    @JsonProperty("name")
    private String name;
    @JsonProperty("email")
    private String email;
    @JsonProperty("number")
    private String number;
    @JsonProperty("password")
    private String password;
    @JsonProperty("date_of_birth")
    private Date dateOfBirth;
    @JsonProperty("location")
    private String location;
}

这是我正在调用的控制器方法:

@RestController
@RequestMapping("/user")
@CrossOrigin(origins = "*")
public class UserControllerImplementation implements UserController {
    @Override
    @PostMapping(produces = "application/json")
    public ResponseEntity<UserBasicDTO> createUser(@RequestBody UserRegisterRequestDTO user) {
        System.out.println("\n\nCreating user");
        System.out.println(user);
        return ResponseEntity.status(HttpStatus.CREATED).body(userService.createUser(user));
    }
}

那些 System.out.println() 正在打印以下内容:

Creating user
UserRegisterRequestDTO(name=null, email=null, number=null, password=null, dateOfBirth=null, location=null)

我已经尝试了一天了,我不知道还能做什么。请帮忙,非常感谢!

java json spring-boot
1个回答
0
投票

它对我有用,使用与您相同的代码。 尝试在 DTO 上添加 @AllArgsConstructor 和 @Setter。

© www.soinside.com 2019 - 2024. All rights reserved.