다음의 코드는 서버로 HTTP request를 날린 후 response로 JSON데이터를 받아 alert를 찍어주는 부분이다.
$.ajax({
type : "GET",
url : "${pageContext.request.contextPath}/json.do",
dataType : "json",
data : "adsId=" + adsId + "&cmd=" + cmd,
success : function(json) {
if (json.isSuccess) {
alert(json.msg);
}
alert(json.info.adsName);
alert(json.info.imp);
alert(json.info.click);
},
error : function(e) {
alert("처리중 장애가 발생하였습니다.");
}
});
서버에서 response하는 데이터는 다음과 같이 단순 문자열을 client에 보내게 된다. (객체가 아님.)
{"isSuccess":true,"msg":"jsonTest","list":[null],"info":{"adsName":"adsInfo","click":10,"imp":1000}}
결국 var json = '{"isSuccess":true,"msg":"jsonTest","list":[null],"info":{"adsName":"adsInfo","click":10,"imp":1000}}'; 와 같이 받아서 각 속성 값에 접근하여 사용하는 것으로 오해할 수 있는데 사실 알고보면 위의 $.ajax 코드에서는 보이지 않지만 jquery내부에서는 서버에서 전달 받은 데이터를 JSON.parse()를 이용하여 객체 타입으로 변경해 주는 것이다.
대략적으로 다음과 같이 객체 타입으로 변경해준다.
var json = {
isSuccess : true,
msg : "jsonTest"
};
'프로그래밍' 카테고리의 다른 글
spring security ajax session timeout 체크 방법 (1) | 2014.01.08 |
---|---|
Ant style pattern 정리 (399) | 2014.01.06 |
spring mvc:resources를 이용한 정적 리소스 캐쉬 문제 해결 방안 (0) | 2014.01.02 |
logback if condition 사용 시 주의 사항 (0) | 2013.12.23 |
숫자섞기 알고리즘 (0) | 2013.10.17 |
자바스크립트 inline? external? (0) | 2013.10.17 |
sitemesh 설정 (0) | 2013.09.02 |
struts2 Missing artifact com.sun:tools:jar:1.5.0 해결 방법 (0) | 2013.09.02 |