1

ループを開始する前に、jQueryでこれをすばやく実行できますか?または、たとえば最初の変数のように、合計数を使用してデータの応答に別のグループを設定する必要がありますか?

一般的な応答は次のようになります。

 [
   {"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]

しかし、jQueryを使用し2て(すべてをループする前に)合計数として返すのでしょうか、それともこのようなことをする必要がありますか?

 [
   {"total":"2"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
   ,{"name":"Tu\u011Frul","surname":"Topuz","message":"Hello World"}
 ]

これを行うための最も効率的/一般的な(最適化に関して)方法は何ですか?

4

2 に答える 2

7

jsonデコード後と同様に、(投稿したものから)オブジェクトの配列を取得しています。いつでもそのlengthプロパティにアクセスして、合計数を取得できます。

この配列を取得したので、json応答をJSオブジェクトに解析できたと思います。を使用dataType: 'json'してjQueryに自動的にそれを行うように指示するか、を使用して自分で解析することができますが、サーバーからヘッダーを設定または設定jQuery.parseJSON()する場合はこれが必要です。dataType:'json'content-Typeapplication/json

だからあなたはこのようなことをすることができます

$.ajax({
      ....
      dataType: 'json',
      success(function(data){
         if(data){
          var total = data.length; 
         }
      }
 }); 

total countしたがって、サーバーから返送する必要はありません。応答を取得した後、JSでそれを取得できます。これにより、配列全体に同じタイプのオブジェクトが含まれるため(特別なメンバー$.eachがないため) 、応答を簡単にトラバースできます。{"total":"2"}

注:プロパティlengthはPure vanilla JSであり、とは関係ありませんjQuery

于 2012-06-29T07:44:25.740 に答える
1

javascriptでは、JSON(データ交換標準)ではなく、javascriptオブジェクトを操作します。

通常、このオブジェクトは次を使用して取得します

var data = JSON.parse(mystring)

または単にあなたdataがjqueryajax呼び出しの成功関数の引数であるという理由で:

   $.ajax(
      ....
      dataType:'json',
      success(function(data){
      }) 

解析されると、あなたが持っているのはjavascriptオブジェクトです。

あなたの場合、それは配列なので、標準的な操作を行うことができます:

var length = data.length;
var secondObject = data[1];
var firstObjectName = data[0].name;
///etc.
于 2012-06-29T07:43:09.833 に答える