Json 이란?
Spring Framework에서 JSON을 사용하기 위해서는 여러 가지 방법이 있습니다.
Jackson 라이브러리와 @ResponseBody 어노테이션 사용: Jackson 라이브러리는 Spring Framework에서 기본적으로 제공하는 JSON 처리 라이브러리입니다. 이 방법은 Spring MVC에서 컨트롤러 메소드의 반환 타입이 JSON인 경우에 사용됩니다.
@RestController
public class MyController {
@GetMapping("/user/{id}")
public User getUser(@PathVariable int id) {
// id에 해당하는 사용자 정보를 조회하여 반환
User user = userService.getUserById(id);
return user;
}
}
위의 예시에서 @RestController 어노테이션은 해당 컨트롤러가 JSON 응답을 반환한다는 것을 나타냅니다. getUser() 메소드는 User 객체를 반환하고, Jackson 라이브러리가 이 객체를 JSON으로 변환하여 응답으로 전송합니다. 이때, User 클래스는 JSON으로 직렬화 가능한 형태여야 합니다.
@RequestBody와 @ResponseBody 어노테이션 사용: 이 방법은 요청 데이터를 JSON으로 변환하여 컨트롤러 메소드에 전달하거나, 응답 데이터를 JSON으로 변환하여 반환하는 경우에 사용됩니다.
@RestController
public class MyController {
@PostMapping("/user")
public void createUser(@RequestBody User user) {
// 전달받은 JSON 데이터로부터 User 객체 생성 및 저장
userService.saveUser(user);
}
}
위의 예시에서 @RequestBody 어노테이션은 요청 바디의 JSON 데이터를 자바 객체로 변환하는 역할을 합니다. 클라이언트가 JSON 형식으로 데이터를 전송하면 Spring은 이를 User 객체로 자동 변환하여 createUser() 메소드에 전달합니다.
@RestController
public class MyController {
@GetMapping("/users")
public List<User> getUsers() {
// 사용자 목록 조회
List<User> users = userService.getAllUsers();
return users;
}
}
위의 예시에서는 List<User>를 JSON 배열로 변환하여 응답으로 전송합니다. 마찬가지로 Jackson 라이브러리가 자동으로 JSON으로 직렬화합니다.
이 외에도 Spring에서는 JSON 처리를 위한 다양한 옵션과 기능을 제공하고 있습니다. 예를 들어, MappingJackson2HttpMessageConverter를 커스터마이징하여 JSON 변환 설정을 조정하거나, @JsonView 어노테이션을 사용하여 필드의 시리얼라이제이션을 제어할 수도 있습니다. 또한, Spring Boot를 사용하는 경우에는 자동으로 Jackson 설정이 적용되어 JSON 처리가 더욱 간편해집니다.
'DEV' 카테고리의 다른 글
[JAVA] spring security 사용하기 (0) | 2023.06.30 |
---|---|
[JAVA] 현재날짜, 시간 구하기 (0) | 2023.06.30 |
[JAVA] spring model 사용하기 (0) | 2023.06.30 |
[C++] Thread 란? + 예제 (0) | 2023.06.30 |
[C++] IOCP 설명 / 예제 (0) | 2023.06.30 |