>  기사  >  웹 프론트엔드  >  jQuery는 ajax 메서드를 사용하여 반환된 json 데이터 함수 예제를 구문 분석합니다.

jQuery는 ajax 메서드를 사용하여 반환된 json 데이터 함수 예제를 구문 분석합니다.

高洛峰
高洛峰원래의
2017-01-12 10:15:541079검색

이 기사의 예에서는 반환된 json 데이터를 구문 분석하기 위해 ajax 메서드를 사용하는 jQuery의 기능을 설명합니다. 참고하실 수 있도록 공유해 드리며, 자세한 내용은 다음과 같습니다.

최근 jQuery의 ajax 방식을 사용하여 json 데이터를 송수신할 때, 반환된 데이터 데이터를 직접 사용할 수 있는 경우가 있다는 문제를 발견했습니다. json 데이터가 있나요? 적절한 때가 아닙니다. 몇 가지 정보를 확인한 후 설명은 다음과 같습니다.

$.ajax({
  url: ajaxurl,
  type: "POST",
  success: function(data){
   //假设返回的json数据里有status及info2个属性
   //有时候可以直接ajaxobj.status或者ajaxobj["status"]去访问
   //但有时候,却要通过eval()或者 $.parsejson();才可以通过ajaxobj.status访问,而且这种情况下,需要是complete而不是success
   ajaxobj=eval("("+data+")");
   //或者$.parsejson()
   //var ajaxobj = $.parsejson(data);
   if(ajaxobj.status=="0")
   {
    alert("请登陆.");
   }
   else if(ajaxobj.status=="1")//未绑定微博
   {
    alert(ajaxobj.info);
   }
   return true;
  },
  error:function(ajaxobj)
  {
     if(ajaxobj.responseText!='')
     alert(ajaxobj.responseText);
  }
});

먼저 첫 번째 상황을 설명하겠습니다.

는 데이터 속성 이름에 직접 액세스할 수 있으며 서버 측 코드는 다음과 같아야 합니다. String을 직접 반환하는 상수입니다.

상수 문자열이란 무엇입니까? 상수 문자열은 ""로 직접 구성된 문자열을 의미하며, 문자열 변수가 정의되지 않고 ""라는 문자열이 프런트 데스크에 직접 출력되는 경우 데이터 속성입니다. name은 직접 사용할 수 있으며 jquery 측에서 성공을 작성하면 얻을 수 있습니다.

eval이 필수이고 성공을 입력할 수 없는 이유는 다음과 같습니다.

이러한 상황은 서버에서 출력할 때 String 객체이기 때문입니다. 일반적으로 제 코드에서는 그런 문제가 발생합니다. 왜냐하면 배경 json이 더 복잡하기 때문입니다. 정리할 때 StringBuffer를 사용했고, 마지막에 인쇄할 때 StringBuffer 개체의 toString을 인쇄했기 때문에 여기서는 String 개체

를 인쇄하는 것과 같습니다. case jquery ajax 메소드는 성공 메소드를 입력하지 않으며, 데이터의 json 데이터를 구문 분석하려면 data.responseText에서 eval() 또는 $.parsejson()을 수행해야 합니다.

이 두 가지 사항 외에도 jq1.4를 사용하는 경우 json 형식에 대한 요구 사항이 더 엄격하다는 점에 유의해야 합니다. 키는 사용하지 않지만 모든 키와 속성은 큰따옴표로 표시해야 합니다. 기본적으로 큰따옴표는 허용되지만 jq1.4에는 이 요구 사항이 있는 것 같습니다.

위 내용은 제 개인적인 생각과 이해입니다. 다른 의견이 있으시면 조언 부탁드립니다.

이 글이 jQuery 프로그래밍에 종사하는 모든 분들께 도움이 되기를 바랍니다.

반환된 json 데이터를 구문 분석하기 위해 ajax 메소드를 사용하는 jQuery 기능적 예를 더 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.