이 글은 이지업 - 포토그램 만들기를 토대로 작성하였습니다.
HttpResponseJsonController.java를 만들어서 @RestController로 만들어 준 후
json으로 응답하는 방법 3가지를 알아보자.
1. json형식으로 직접 return 해주기
@GetMapping("/resp/json")
public String respJson() {
return "{\"username\":\"cos\"}";
}
여기서 return 안에 들어가는 문자는 메모장을 켜서 아래와 같이 작성해준다.
{"username":"cos"}
그리고 그대로 복사해서 return 값에 넣어주면 위와 같이 정리되어 들어간다.
2. java object로 받아서 String형으로 반환
@GetMapping("/resp/json/object")
public String respJsonObject() {
User user = new User();
user.setUsername("Junfe");
String data = "{\"username\":\""+user.getUsername()+"\"}";
return data;
}
user 객체를 생성해서 그 안에 "Junfe"라는 내용을 담는다.
그리고 data라는 String 형을 선언해서 json 형식으로 작성해준다.
실제 개발하면서 절대로 이렇게 사용하진 않는다. data에 들어가는 저 내용을 직접 작성하는 것은 정말 힘든 일일 것이다.....
3. MessageConverter 가 자동으로 java object를 json 형태로 변환
@GetMapping("/resp/json/javaobject")
public User respJsonJavaObject() {
User user = new User();
user.setUsername("Junfe");
return user;
// 1. MessageConverter 가 자동으로 JavaObject를 Json으로 변경해서 통신을 통해 응답을 해준다.
// 2. @RestController 일때만 MessageConverter가 작동한다.
}
여기서는 객체 자체를 반환한다. 그러면 MessageConverter가 자동으로 JavaObject를 Json으로 변경해준다.
이 때, 주의할 점은 controller가 @RestController 여야 한다는 것이다.
위 3가지 방법의 결과는 모두 아래와 같다.
크롬에서 json viewer를 확장하여 사용하기 해놔야 위와 같이 표기된다.
'Programming > Spring' 카테고리의 다른 글
SPRING과 SPRING BOOT의 차이점 (0) | 2021.08.01 |
---|---|
[spring boot] http 요청 file로 응답 (0) | 2021.06.15 |
[spring boot] http body 데이터 전송 (0) | 2021.06.08 |
[spring boot] controller - 쿼리스트링, 주소변수매핑 (0) | 2021.06.07 |
[spring boot]http 4가지 요청 방식 (0) | 2021.06.07 |