'팁'에 해당되는 글 1건

  1. 2007/08/06 Ajax 호출시 JSON 으로 리턴 받기

Ajax 호출시 JSON 으로 리턴 받기

Ajax 호출시 리턴 형태는 xml과 text가 있다. Data를 text로 받는데, 그 text 가 javascript object 배열(JSON)인 것이다. 이 JSON이라고 하는것이 배열 표현 방법의 하나인것이다.

Ajax가 호출하는 페이지의 결과값을 아래처럼 JSON형태로 출력하게 한다. 이때 주의 할점은 배열의 Object 명을 명시 하지 않는다.

{
 list :
 [
   {  
    img_url : ".../20070806_164500_ban_superstar.gif" ,
    link_url : "/superstar/Top.htm" ,
    link_target : "_self"
   },  
   {  
    img_url : ".../20070806_164500_ban_superstar.gif" ,
    link_url : "/superstar/Top.htm" ,
    link_target : "_self"
   }
 ]
}

responseText 로 리턴 받은 text값을 이제 javascript 의 object 배열로 변경 시켜주면된다. 변경시켜주는 방법에는 여러가지가 있는데, 필자는 아래와 같은 방법을 선호한다. 가장 간단한 방법인 듯 하다.

  var logobanner = null;  
  try {
   logobanner= eval('(' + obj + ')'); 
  }catch(e){}

responseText 로 리턴 받은 text 값의 parameter명이 obj라고 할때, 이 obj를  eval함수로 괄호와 함께 묶어주면 logobanner 이라는 이름으로 object배열이 선언 된다. try cath문으로 묶은 이유는 이 obj가 배열 object형태로 리턴되지 않는 예외경우를 대처하기 위한 구문이다.

실제 사용해보니 xml보다 간편했다. 장단점이 있지만, 굳이 xml을 사용하지 않아도 된다면 JSON형태로의 개발을 추천한다.