본문 바로가기

개발/스프링

스프링4 - Jackson으로 웹에 JSON 형태로 출력하기

현재 개발 프로젝트 실무에서 JSON 형태의 데이터를 활용하지 않는 곳은 거의 없을 것이다.

작년 말 을지로에서 근무했을 때에는, 스프링과 잭슨을 활용하여 RESTFUL API를 제공해 주는 개발을 했었다.

그래서 이 포스팅에서는 JSON 형태의 데이터를 웹에 보여줄 수 있게 구현하는 방법을 한번 다뤄보겠다.

 

maven 환경이라 가정하고, 아래 작업을 하면 된다.

1. 메이븐(pom.xml) 설정

2. JAVA Controller 설정

 

 

 1-1. 버전 정보 업데이트 

<properties>
  <java-version>1.8</java-version>
  <org.springframework-version>4.1.7.RELEASE</org.springframework-version>
  <org.aspectj-version>1.6.10</org.aspectj-version>
  <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

STS로 처음에 프로젝트를 만들면, 기본값으로 자바(1.6), 스프링(3.1.1.RELEASE)로 설정된다.

위 코드와 같이, 자바 버전(1.8)과 스프링 버전(4.1.7)을 수정해 준다.

 

 

 1-2. 잭슨(JACKSON) Databind 추가 

<!-- JACKSON Databind-->
<dependency> 
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.5.4</version>
</dependency>

잭슨 라이브러리를 사용하면, 웹에서 간단하게 json 형태로 제공할 수 있다.

* Jackson이란? JSON 데이터 구조를 처리해주는 라이브러리

 

 

2. 컨트롤러(Controller) 코딩하기 

package com.kkc.controller;

import java.util.HashMap;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.kkc.service.BoardService;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {
	
	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
		
	/**
	 * JSON 테스트
	 */
	@RequestMapping(value = "/jsonTest", method = RequestMethod.GET)
	public @ResponseBody HashMap<String, Object> jsonTest() throws Exception {
		logger.info("json 웹 출력 테스트");
		
		HashMap<String, Object> resMap = new HashMap<String, Object>();
		
		resMap.put("test", "hello?");

		return resMap;
	}

}

스프링의 @ResponseBody 어노테이션을 사용하여, Map 또는 HashMap에 데이터를 담아 리턴해주면 된다.

 

 

 화면 

위와 같이 JSON 형태로 데이터가 화면에 출력된다.

 


 참고 

Tool은 이클립스 STS4(Spring Tool Suite 4)

4.6.1.RELEASE 버전에서 작업했다.

사용 Tool 관련 정보

 

 

프로젝트는 'Spring Legacy Project'으로 만들었다.

사용 프로젝트 정보

 

 출처 

책 "코드로 배우는 스프링 웹 프로젝트" (구멍가게 코딩단 지음)