블로그 이미지
veresuke's House!!
verere

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Recent Comment

Recent Trackback

  • 33,209total
  • 0today
  • 8yesterday

'Client'에 해당되는 글 1건

  1. 2008/11/06 [JSON]클라이언트에서 JSON 데이터 사용하기
2008/11/06 13:52 Study/Web
가끔 JOSN으로 서버와 데이터를 주고 받다 보면
하나의 request에 여러 데이터?를 받게되는 경우가 있다.

request를 http://xxx.xxx.xxx/xxx.xxx?yy=y(GET 방식. POST나 다른 방식으로 넘겨줘도 무방해요~^^) 넘겨주면
서버에서는 요렇게~     참고로 아래는 php임돠ㅋ

$oResponseJsonData = '{ "REQUEST":{"REQ_DATA1":"data1", "REQ_DATA2":"data2"}, "RESULT_LIST":[';

for($i=0; $i<$nCount; $i++) {
if($i == ($nCount-1))
$oResponseJsonData .= '{"RESULT":{"RST_DATA1":"data1", "RST_DATA2":"data2", "RST_DATA3":"data3", "RST_DATA4":"data4"}}';
else
$oResponseJsonData .= '{"RESULT":{"RST_DATA1":"data1", "RST_DATA2":"data2", "RST_DATA3":"data3", "RST_DATA4":"data4"}},';
}

$oResponseJsonData .= '] }';

클라이언트로 넘겨주게 된다.
그렇다고 서버에서 꼭 저렇게 넘겨주는 것은 아니다. 그냥 한 예일 뿐이며, 지극히 내 맘... -ㅅ-;;
넘겨주는 형식이 중요할 뿐이므로 패쑤~~

여기서 '[', ']' 이게 중요!!!!!! 그래야 각 하위 엘리먼트(여기서는 각 RESULT 부분)에 접근할 수 있다.
'{ }' 이렇게 감싸면 제일 마지막의 엘리먼트만 접근이 가능하다는..
'{ }' 요게 혹시 가능하다면 저한테 코멘트 좀....;;

서버에서 넘겨주는 데이터의 구성은 아래와 같이 된다.

{ "REQUEST":{ "REQ_DATA1":"data1", "REQ_DATA2":"data2" },
  "RESULT_LIST":[
{"RESULT":{ "RST_DATA1":"data1", "RST_DATA2":"data2", "RST_DATA3":"data3", "RST_DATA4":"data4" }},
{"RESULT":{ "RST_DATA1":"data1", "RST_DATA2":"data2", "RST_DATA3":"data3", "RST_DATA4":"data4" }},
{"RESULT":{ "RST_DATA1":"data1", "RST_DATA2":"data2", "RST_DATA3":"data3", "RST_DATA4":"data4" }}
  ]
}

이걸 어떻게 클라이언트에서 사용해야 될까?
우선 Ajax의 reponseText를 이용해 받게된다면 eval(text를 object 형식으로 변환하여 사용하기 위해)을 이용하자.
다른 방식도 있는데 parseJSON()을 사용해도 된다. parseJSON의 역은 toJSONString()으로 object를 text로 변환해준다.

실제 예를 함 보자. text를 object로 변환 ㄱㄱㅆ~~

var sResponseVal = Object.responseText;
var oVal = eval("(" + sResponseVal + ")");

이 상태에서 REQUEST의 REQ_DATA2에 접근할려면
oVal.REQUEST.REQ_DATA2 이렇게 접근하면 된다 ^^

RESULT_LIST의 3번째 RESULT의 RST_DATA3에 접근하려면
oVal.RESULT_LIST[3].RESULT.RST_DATA3 이렇게 ㅎ

간단하다. 나머진 각자 입맛에 맞게 바꾸면 끝~~

'Study > Web' 카테고리의 다른 글

[PHP]배열을 상수로 사용하기  (0) 2009/03/07
[JSON]클라이언트에서 JSON 데이터 사용하기  (0) 2008/11/06
[AJAX]timeout  (1) 2008/11/05
[PHP] 가변변수에 대해서  (2) 2008/10/24
posted by verere