2017. 8. 22. 18:05
반응형

스프링 프레임워크에서 JSON 형식으로 응답받기

우선 json을 제대로 활용하기 위해서 pom.xml에 다음 디펜던시를 추가한다.


<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.4</version>
</dependency>


간단한 학생 데이터를 만들어 보내는 예제를 위해 StudentVO.java 파일을 다음과 같이 만든다.


public class StudentVO {
private String name;
private int age;
private String[] subject;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String[] getSubject() {
return subject;
}
public void setSubject(String[] subject) {
this.subject = subject;
}
}


이제 컨트롤러에 다음과 같이 @ResponseBody HashMap<String, Object> 의 리턴형식을 갖도록 만들어 준다.


@RequestMapping(value="/json", method=RequestMethod.GET)
public @ResponseBody HashMap<String, Object> jsonTest(){
HashMap<String, Object> map = new HashMap<String, Object>();
StudentVO student1 = new StudentVO();
student1.setName("Tom");
student1.setAge(21);
student1.setSubject(new String[] {"Math", "English"});
StudentVO student2 = new StudentVO();
student2.setName("Peter");
student2.setAge(22);
student2.setSubject(new String[] {"Science", "Java", "Music"});
List<StudentVO> list = new ArrayList<StudentVO>();
list.add(student1);
list.add(student2);
map.put("name", "class-1");
map.put("list", list);
map.put("num", list.size());
return map;
}


서버를 실행하고 인터넷 창에서 /json 경로로 이동하면 다음과 같이 JSON 형식으로 출력되는 것을 볼 수 있다.

이제 jsp 상에서 적절히 활용할 수 있도록 만들어주면 된다.

{"num":2,"name":"class-1","list":[{"name":"Tom","age":21,"subject":["Math","English"]},{"name":"Peter","age":22,"subject":["Science","Java","Music"]}]}


반응형