여기에서 고려되는 것은 서버가 JSON 문자열을 반환한다는 것입니다. JSONObject와 같은 플러그인으로 캡슐화된 JSON 객체의 경우에도 마찬가지이므로 여기서는 설명하지 않습니다.
여기서 먼저 JSON 문자열 세트가 제공됩니다. 문자열 세트는 다음과 같습니다.
var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'西安市'}, {name:'6102',value:'铜川市'}, {name:'6103',value:'宝鸡市'}, {name:'6104',value:'咸阳市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }";
jquery가 비동기적으로 얻는 데이터 유형인 json 객체와 문자열을 기반으로 두 가지 방법으로 얻은 결과 처리 방법을 소개합니다.
1. 서버에서 반환된 JSON 문자열의 경우 jquery 비동기 요청에 유형 설명이 없거나 문자열로 허용되는 경우 메서드가 너무 번거롭지 않아야 합니다. eval()에 문자열을 넣으면 한 번 실행됩니다. 이 방법은 일반적인 javascipt를 사용하여 json 객체를 얻는 데에도 적합합니다. 다음은 예입니다.
var dataObj=eval("("+data+")");//转换为json对象 alert(dataObj.root.length);//输出root的子对象数量 $.each(dataObj.root,fucntion(idx,item){ if(idx==0){ return true; } //输出每个root子对象的名称和值 alert("name:"+item.name+",value:"+item.value); })
참고: 일반 js에서 json 객체를 생성하려면 $.each() 메서드를 for 문으로 바꾸기만 하면 되고 나머지는 변경되지 않습니다.
2. 서버에서 반환된 JSON 문자열의 경우 jquery 비동기 요청이 유형(일반적으로 이 구성 속성)을 "json"으로 설정하거나 $.getJSON() 메서드를 사용하여 서버 반환을 얻는 경우 이때 얻은 결과는 이미 json 개체이므로 eval() 메서드가 필요하지 않으며 개체를 직접 호출하기만 하면 됩니다. 여기서는 데이터 처리 방법을 설명하기 위해 $.getJSON 메서드를 예로 사용합니다.
$.getJSON("http://gaoyusi.blog.163.com/",{param:"gaoyusi"},function(data){
//此处返回的data已经是json对象 //以下其他操作同第一种情况 $.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); });