Programming/Spring
[spring boot] json 응답하기
JunFe
2021. 6. 8. 23:56
반응형
이 글은 이지업 - 포토그램 만들기를 토대로 작성하였습니다.
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를 확장하여 사용하기 해놔야 위와 같이 표기된다.
반응형