1.JQUERY JSON 파싱
<< JSON >>
조금이나마 보기 편하게 처리 했습니다...ㅎ0ㅎ
<< 응답 결과 처리 >>
38라인 : json 포맷으로 응답받기 위해 dataType 을 json로 지정해서 요청
42라인 : 응답결과가 정상적으로 왔을 경우 호출되는 함수
44라인 : 각각의 친구 인적사항을 가지고 있는 'UnoFriendList'의 배열값을 가져옴
나머진 소스코드의 주석 내용을 보시면 되겠네요^^
<< 응답 결과 >>
(주의)
38라인에서 응답 포맷을 json으로 지정하지 않는다면 텍스트(문자열) 형태로
결과값이 넘어옵니다.
그러면 response_json 함수의 인자인 json 이 문자열 이므로
객체타입으로 변경해주어야 파싱이 가능하겠죠??
두가지 방법이 있습니다.
1. JQUERY 의 함수 사용
var obj = $.parseJSON(json);
2. 자바스크립트 함수 사용
var obj = eval("(" + json + ")");
둘중 아무거나 사용하셔도 객체타입으로 변경되어 파싱 하실수 있습니다.^^
2.JQUERY XML 파싱
어떤 요청에 대한 응답 결과의 포맷을 XML 아니면 JSON 형태로 많이 받는거 같습니다..!!
저는 응답결과를 브라우저로 확인할때는 XML 을 사용하고, 실제 처리는 JSON 포맷으로 받아서 처리하고 합니다..ㅎㅎ
그래서인지 JQUERY XML 파싱은 어떻게 하더라??~~하고 기억이 가물가물..!!^^
아래 간단한 예제를 작성해 보았습니다.
(예제의 응답 결과는 '친구 3명의 인적사항' 입니다.ㅋㅋㅋ)
<< XML 응답 결과 >>
Friend 노드가 3개 있으며
각 노드안에
- name(이름)
- phone(폰)
- address(주소)
- birth(생일)
- family(가족)
- date(등록일)
있습니다.
이중에서 family 의 이름을 가르키는
family_name_1, family_name_2.... 를 제외하고는 노드명이 고정 입니다.
(가족수가 많으면 family_name_3...4..5 늘어나겠죠..^^)
38라인 : xml 포맷으로 응답받기 위해 dataType 을 xml 로 지정해서 요청
47라인 : 응답결과가 정상적으로 왔을 경우 호출되는 함수
49라인 : 각각의 친구 인적사항을 감싸고 있는 'Friend' 노드를 찾는다.(여기선 3개 나옴)
57라인 : Friend 노드의 수(3개) 만큼 each 함수로 루프를 돈다.
60~73라인 : 각각의 항목을 찾아 그 값을 구한다.( $(this).find("찾을 값").text() )
69라인 : 가족의 이름을 포함하는 'family'를 찾은후 그 자식 노드를 구한다(children 사용)
자식노드의 수만큼 루프를 돌아 각각의 이름을 구한다.
Jquery 의 find 와 each , text 함수만 알아도 xml 파싱이 술술 되네요^^
위의 예제에는 없지만
<Friend group="highschool">
과 같은 형식이 있다면 루프문 안에서
$(this).attr(group); 를 사용하여 'highschool' 값을 구하실 수 있습니다.!!
<< 결과값 보기 >>
'jQuery' 카테고리의 다른 글
jQuery 간단하게 사전처럼 찾아쓰기 (findfun 님블로그 정리) (0) | 2014.08.06 |
---|---|
SelectBox 제어 (0) | 2014.02.26 |
e.preventDefault() (0) | 2014.02.26 |
.attr() .prop() 왜 나누어졌는가 (0) | 2014.02.04 |
제이쿼리 셀렉터 요약 (0) | 2014.02.04 |