다음의 코드는 서버로 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" };