Spring 4에서 Jaxson 라이브러리를 사용하여 JSON 포맷으로 응답하기
테스트 환경
JDK 1.8
Tomcat 8
Spring 4
Eclipse, STS, Maven
pom.xml 에 다음과 같이 jackson 라이브러리를 추가한다 (http://mvnrepository.com/ 에서 jackson databind, jackson core 으로 검색한다 )
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.0</version>
</dependency>
Controller
클래스 전체 메소드가 JSON 문자열 응답을 하도록 설정하려면 클래스에 @RestController 를 추가하고, 특정 메소드만 JSON 포맷으로 응답하도록 설정하려면 해당 메소드에 @ResponseBody 를 추가하면 된다. 이렇게 설정된 메소드에서 빈 객체를 리턴하면 빈객체의 속성들은 JSON 문자열 포맷으로 변환되어 응답바디를 구성하고 클라이언트로 전송된다. 물론 메소에서 직접 JSON문자열을 작성하여 리턴해도 되지만 복잡한 문자열 연산과 따옴표 사용으로 오류가 발생하기 쉽기 때문에 아래의 방법을 사용하는 것이 좋을 것이다
.........
.............
@RequestMapping(value="/json", method=RequestMethod.GET)
@ResponseBody
public LoginVO login() {
LoginVO vo = new LoginVO();
vo.setId("Hello");
vo.setPwd("World");
vo.setSuccess(true);
return vo;
}
.........
.........
결과 테스트
http://localhost:8080/SpringDemo/json 으로 요청하면 웹브라우저 화면에 다음과 같은 JSON 문자열이 출력된다
{"id":"Hello","pwd":"World","success":true}