jquery는 JSON.parse()를 사용한다.

프로그래밍|2013. 10. 18. 19:17

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

};




댓글()