我遇到了一个问题,我发送一个带有 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)
我已经尝试了一天了,我不知道还能做什么。请帮忙,非常感谢!
它对我有用,使用与您相同的代码。 尝试在 DTO 上添加 @AllArgsConstructor 和 @Setter。