2017-05-18 5 views
0

thisthisthisthisになるまで読んでいます。JSONArrayをAjaxから呼び出す方法を指定する方法jquery?

私がやってみたいことは、Ajaxの呼び出しから返されたデータを反復することです。これはPHP側のjson_encodeです。

これは私がconsole.log(data)を使用するときに返されるオブジェクトの構造である:

私は何を反復するために使用することは、私がしたいの例ので、(私は、各キーの各値を取得したいと思い、このです
Object {0: "218", 1: "SCT_22156", 2: "10456", 3: "S5_MAN_Artwork-Processing", 4: "Duma Guete", ID: "218", ARTICLE_ID: "SCT_22156", METADATA_ID: "10456", FROM_STAGE: "S5_MAN_Artwork-Processing", SEND_FROM: "Duma Guete"} 

$.each(data, function(k, v) { 
    console.log(v.METADATA_ID); 
}); 

をしかし、これはundefinedを返します。metadata_id)を取得します。

注: ajax呼び出し中にデータが1つ以上のオブジェクトに返される可能性があります。

返されたデータが2つ以上のオブジェクトの場合は、undefinedが返されないため、JSONArrayになります。したがって、返されたデータが次のような場合:

Object [{"data":"value"..},{"data":"value"..}] 

$.eachが問題なく動作します。

サーバー側(php)にJSONArrayが1つのオブジェクトのみを含んでいても返すように指定することはできますか?

私もfor in loopを使ってみましたが、逆にJSONArrayでは動作しません。 timeoutsも追加しようとしましたが、運はありません。私はここで間違って何をしていますか?

これは私のAJAX呼び出しです:

$.ajax({ 
    type:'POST', 
    url: , 
    data:, 
    dataType : 'json', 
    success: function(data){ 
     console.log(data); 
     if(data){ 
      $.each(data, function(k, v) { 
       console.log(v.SEND_FROM); 
      }); 
     } 
    }, 
    error: function(jqXhr, textStatus, errorThrown){ 
     console.log(errorThrown); 
     } 
}); 

が、私はこのトリックを使用してみました:ブラケットを追加

$.each([data], function(k, v) { 
    console.log(v.METADATA_ID); 
}); 

が、それはJSONArray(複数のオブジェクト)の結果についてundefinedの原因となります。

答えて

0

私が正しく理解していれば、dataが配列か単一オブジェクトかを区別しようとしていますか?もしそうなら、thisの投稿をチェックすることをお勧めします。

あなたはjQueryのを使用しているので、あなたはisArrayを使用することができます。

$.ajax({ 
    type:'POST', 
    url: , 
    data:, 
    dataType : 'json', 
    success: function(data){ 
     console.log(data); 
     if(data){ 
      if ($.isArray(data)) 
      { 
       for (var i = 0; i < data.length; i++) 
        console.log(data[i]['SEND_FROM']); 
      } 

      else 
       console.log(data['SEND_FROM']); 
     } 
    }, 
    error: function(jqXhr, textStatus, errorThrown){ 
     console.log(errorThrown); 
     } 
}); 
+0

それは本当に私が必要との直接の答えではありませんが、あなたの '$ .isArray'の周り別の方法を見つけるために私を助けて。ありがとうございました。 – threeFatCat

関連する問題