Spring 에서 JSON 사용하기 I.lib()/I.lib(Spring)2012. 2. 27. 18:22
1. http://www.ibm.com/developerworks/kr/library/wa-restful/index.html
메세지 컨버터를 이용한 방법.
응답 메시지를 json데이타로 컨버팅하는 방법이다.
젤 간단하고 광역적으로 쓸수 있다.
2. http://whiteship.tistory.com/2297
MappingJacksonJsonView 를 이용한 방법
이 방법은 세번째랑 비슷한데 Jackson에서 제공하는 json뷰를 쓴다는거만 틀리고 같다.
위에꺼랑 맞먹게 간단한데.... 좀더 불편한건 ModelAndView를 만들때마다 jsonView로 만든 뷰의 이름으로 생성해야 된다는거
3. http://ultteky.egloos.com/10496535
그동안 자주 써왔던 json-lib를 이용한 방법이다.
jackson도 안되던 부분이 이놈 뷰를 쓰니까 됐다....슈발...
2번이나 똑같은데 단지 라이브러리 종류가 틀리다.
[펌] : http://msfury.tistory.com/117
------------------------------------------------------------------------------------------------------
3번 json-lib를 사용하는 방법
서버에서 클라이언트로 리턴할 오브젝트를 Json형태로 변환 하거나 또는 그반대로
Json 데이터를 해당 오브젝트로 변환하는 라이브러리가 필요 합니다. 그중에서
Json-lib를 사용 합니다 .
(해당 사이트에 접속하면 다양한 json 라이브러리를 다운 받을 수 있습니다. ).
여기서 최신 버전으로 다운로드를 받습니다.
다운로드 후 이클립스 프로젝트에
라이브러리를 추가 합니다.
웹 사이트 : http://json-lib.sourceforge.net/
다운로드 : http://sourceforge.net/projects/json-lib/files/
사용법은 해당 사이트를 참고 하시면 됩니다.
- 스프링 전용 JsonView 다운 받기
거기서 최신 버전의 라이브러리를 다운로드 후 이클립스 프로젝트에
추가 합니다.
다운로드 : http://sourceforge.net/projects/json-lib/files/
- JsonView 스프링 빈 설정
<bean id="jsonView" class="net.sf.json.spring.web.servlet.view.JsonView"/>
- ViewResolver 설정
JsonView를 인식 하기 위해서 "BeanNameViewResolver"를 설정 합니다.
WebApplication에서는 여러 Resolver가 존재 할수 있기 때문에
우선 순위를 "0"으로 설정해서 최우선으로 설정 합니다.
<bean id="beanNameResolver"
class="org.springframework.web.servlet.view.BeanNameViewResolver"
p:order="0" />
- Controller Code
없이 평소처럼 코딩 하면 됩니다. 모든 ajax 처리는 JsonView가
처리 함으로써 단지 JsonView가 선언된 스프링 빈 id를
ModelAndView의 "setViewName" 메서드에 선언만
하면 됩니다.
public final ModelAndView handlerRequest(final HttpServletRequest request,
final HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
DummyMember dummyMember1 = new DummyMember();
dummyMember1.setId("xxxxxxx");
DummyMember dummyMember2 = new DummyMember();
dummyMember2.setId("yyyyyy");
List list = new ArrayList();
list.add(dummyMember1);
list.add(dummyMember2);
Map resultMap = new HashMap();
resultMap.put("result1", list);
resultMap.put("result2", dummyMember1);
modelAndView.addAllObjects(resultMap);
modelAndView.setViewName("jsonView");
return modelAndView;
}
※ 샘플 도메인
public class DummyMember {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
- 결과 JSON 패킷
{"result2":{"id":"xxxxxxx"},"result1":[{"id":"xxxxxxx"},{"id":"yyyyyy"}]}
customizing이 필요하면 JsonView 클래스를 상속 받은 후에 "renderMergedOutputModel"
메서드를 override 하시거 아니면 직접 다운로드 사이트에서
소스를 받은 후에 수정 후 적용 하시면 됩니다.
'I.lib() > I.lib(Spring)' 카테고리의 다른 글
DispatcherServlet 이란? (3) | 2012.03.07 |
---|---|
[ViewResolver] ViewResolver (1) | 2012.03.07 |
org.springframework.web.context.contextloaderlistener classnotfound 해결방법 (2) | 2012.02.20 |
Spring(스프링) 이란?! - 정말 이해하기 쉬운 정리 (13) | 2012.01.04 |
이클립스(eclipse) Spring 자동완성이 안될때 (1) | 2011.05.27 |