ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery は ajax メソッドを使用して、返された json データ関数の例を解析します

jQuery は ajax メソッドを使用して、返された json データ関数の例を解析します

高洛峰
高洛峰オリジナル
2017-01-12 10:15:541114ブラウズ

この記事の例では、ajax メソッドを使用して返された json データを解析する 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 の最後に success と書くだけで取得できます。

eval が必要で成功を入力できない理由は次のとおりです:

この状況は、サーバーが出力するときに、バックグラウンドの JSON がより多くの場合、通常、この種の問題がコードで発生するためです。複雑です。整理するときにStringBufferを使用し、最後に印刷するときにStringBufferオブジェクトのtoStringを印刷するので、Stringオブジェクトを印刷するのと同じになります

この場合、jqueryのajaxメソッドは成功に入りません。メソッドであり、完全受信のみを使用できます。data 内の json データを解析したい場合は、data.responseText; で eval() または $.parsejson() を行う必要があります。

これら 2 点に加えて、もう 1 つあります。注意すべき点: jq1 .4 を使用している場合、json の形式にはより厳しい要件があります。すべてのキーと属性は二重引用符でマークする必要がありますが、キーに二重引用符のないネイティブ js は許可されているようです。この要件があります。

上記は私の個人的な考えと理解です。異なる意見がある場合は、アドバイスをお願いします。

この記事が jQuery プログラミングのすべての人に役立つことを願っています。

ajax メソッドを使用して返された json データを解析する jQuery 関数の例については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。