>  기사  >  웹 프론트엔드  >  jquery JSON 구문 분석 방법_jquery

jquery JSON 구문 분석 방법_jquery

WBOY
WBOY원래의
2016-05-16 18:49:14949검색

여기서 고려되는 것은 서버가 JSON 형식으로 문자열을 반환한다는 것입니다. JSONObject와 같은 플러그인으로 캡슐화된 JSON 개체의 경우에도 마찬가지이므로 여기서는 설명하지 않습니다.

여기서 먼저 JSON 문자열 세트가 제공됩니다. 문자열 세트는 다음과 같습니다.

코드 복사 코드 다음과 같습니다:

var data="
{
root:
[
{name:'1',value:'0'},
{이름:'6101 ',값:'시안시'},
{이름:'6102',값:'퉁촨시'},
{이름:'6103',값:'바오지시 '},
{ 이름:'6104',값:'셴양시'},
{이름:'6105',값:'웨이난시'},
{이름:'6106',값 :'옌안시'},
{이름:'6107',값:'한중시'},
{이름:'6108',값:'위린시'},
{이름 :'6109',값:'안강시'},
{이름:'6110',값:'상뤄시'}
]
}";

jquery를 이용하여 비동기적으로 얻은 데이터 타입 —— json 객체와 문자열을 기반으로 두 가지 방법으로 얻은 결과 처리 방법을 소개한다.

1. 서버에서 반환된 JSON 문자열의 경우 jquery 비동기 요청이 유형을 지정하지 않거나 문자열 형식으로 허용하는 경우 메서드가 너무 객체화되어야 합니다. 번거로운 일, 즉 문자열을 변환하여 eval()에 넣고 한 번 실행해 보세요. 이 방법은 일반 javascript 방법으로 json 객체를 얻는 데에도 적합합니다. 다음 예는

var dataObj=eval("(" data ")");//Convert to json object
alert입니다. (dataObj.root.length);//루트의 하위 객체 수 출력
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}

//각 루트 하위 개체의 이름과 값을 출력합니다.
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){
//The data received 여기에는 이미 json 객체가 있습니다
//아래 기타 작업은 첫 번째 경우와 동일합니다
$.each(data.root,function(idx,item){
if(idx==0) {
true를 반환합니다.//countinue와 동일하고, break와 동일하게 false를 반환합니다.
}

alert("name:" item.name ",value:" item.value

});
});

여기서 특별한 주의가 필요한 것은 메서드 1의 eval() 메서드가 문자열(아마도 js 스크립트)을 실행한다는 것입니다. 보안 문제. 따라서 eval()을 우회하는 일부 타사 클라이언트 스크립트 라이브러리를 사용할 수 있습니다. 예를 들어
JavaScript의 JSON은 3k 이하의 스크립트 라이브러리를 제공합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.