【发布时间】:2021-06-02 11:45:42
【问题描述】:
当我尝试使用 Postman 通过 Get Request 获取学生详细信息时,我得到了额外的键值对,即(实体:相同对象)。请帮助我理解为什么我会得到它,以及如何从我的回复中删除它。但是当我尝试打印在控制器类(第 1 行)中获取的对象时,它会显示正确的对象。
回应:
{
"id": 2,
"name": "ABC Person",
"age": 28,
"courses_id": 1,
"entity": {
"id": 2,
"name": "ABC Person",
"age": 28,
"courses_id": 1
}
}
获取请求网址:
http://localhost:8300/students/ABC Person
REST API 控制器类:
@RestController
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping(value="/students/{name}")
public ResponseEntity<StudentDTO> getStudentDetails(@PathVariable String name){
StudentDTO student = studentService.getStudentDetails(name);
System.out.println(student); // LINE 1
return new ResponseEntity<>(student,HttpStatus.OK);
}
}
学生DTO课:
public class StudentDTO {
private int id;
private String name;
private int age;
private int courses_id;
//getter and setter methods
public static StudentDTO valueOf(Student student) {
StudentDTO studentDTO = new StudentDTO();
studentDTO.setId(student.getId());
studentDTO.setName(student.getName());
studentDTO.setAge(student.getAge());
studentDTO.setCourses_id(student.getCourses_id());
return studentDTO;
}
public Student getEntity() {
Student student = new Student();
student.setId(this.id);
student.setName(this.name);
student.setAge(this.age);
student.setCourses_id(this.courses_id);
return student;
}
}
【问题讨论】:
-
你的
StudentDTO班级是什么样子的? -
@DanielWosch 我已经编辑并添加了 StudentDTO 类 FYR。
标签: java spring-boot spring-restcontroller spring-rest