본문 바로가기
Spring Framework

23.03.30

by SoulMania 2023. 3. 30.

json형태로 데이터를 return하는 방법은 내가 아는 범위내에서 2가지다.

(더 있을 수도 있는데... 일단 내가 아는 방법은 2가지.)

 

첫째, jsonView

 

둘째, @ResponsBody 

 

이 2가지이다. 예전에 상세히 들어간 건 아니고 대충 검색해보면서 

 

@ResponseBody보다 jsonView를 이용하는게 더 많은 데이터를 처리하는데 좋다고 하는데, 

 

아직까지 차이가 날 정도로 큰 데이터를 다뤄보지 못해서 차이를 잘 모르겠다.

 

1. jsonView

 

사실 회사에 오고나서 이미 이렇게 짜여진 코드를 봐와서 난 이게 따로 설정해야하는 줄 몰랐다.

 

jsonView를 사용하기 위해서는 설정이 필요하다. 몇가지 jar파일을 pom.xml에 선언해주고 설정해주면 된다.

(*설정방법은 조금만 찾아보면 바로 찾을 수 있다.)

 

보통 난 jsonView를 이렇게 사용한다.

 

1
2
3
4
5
6
7
8
9
10
@RequestMapping(value="/practice/jsonViewTest")
public ModelAndView jsonViewTest(@RequestParam Map<StringObject> params, HttpServletRequest request){
    ModelAndView mv = new ModelAndView();
    List<Map<StringObject>> result = new ArrayList<HashMap<StringObject>>();        
        
    result = testService.selectData(params);
    mv.addObject("result", result);
    mv.setViewName("jsonView");
    return mv;
}
cs

 

 

json으로 보내고 싶은 데이터를 조회해오고, ModelAndView.addObject를 이용해 객체를 추가해주고,

 

ModelAndView.setViewName("jsonView")를 통해 json형태로 return한다.

 

 

 

2. @ResponseBody

 

어노테이션을 이용하는 방법이다. 스프링이니까 어노테이션을 적절히 사용해주는게 좋으려나? 

 

사용방법은 간단하다. 메서드 위에 @ResponseBody만 선언해주면 되니까.

 

1
2
3
4
5
6
7
8
@RequestMapping(value="/practice/responseBodyTest")
@ResponseBody
public List<Map<StringObject>> responseBodyTest(@RequestParam Map<StringObject> params, HttpServletRequest request){
    List<Map<StringObject>> result = new ArrayList<HashMap<StringObject>>();        
        
    result = testService.selectData(params);
    return result;
}
cs

 

그때그때 편한 방법을 사용하면 좋을 것 같다. 

 

 

참고블로그

https://zorba91.tistory.com/17

 

서버에서 json형태로 return하는 방법.

json형태로 데이터를 return하는 방법은 내가 아는 범위내에서 2가지다.(더 있을 수도 있는데... 일단 내가 아는 방법은 2가지.) 첫째, jsonView 둘째, @ResponsBody 이 2가지이다. 예전에 상세히 들어간 건

zorba91.tistory.com