2017-01-25 24 views
0

私はこのJSONを持っている:Ajax中にネストされたJSONを反復処理するにはどうすればよいですか?

{ 
    "draw": 0, 
    "recordsTotal": 90, 
    "recordsFiltered": 41, 
    "data": [ 
    { 
     "id": "5", 
     "art": "default/def2.jpg", 
     "full_name": " ", 
     "title": "Hellberg - The Girl | Atomik Remix", 
     "tag": "music", 
     "time": "2015-11-14", 
     "": "" 
    }, 
    { 
     "id": "8", 
     "art": "default/def2.jpg", 
     "full_name": "Simon Deoro", 
     "title": "Tim McMorris-On (Single)", 
     "tag": "dance,popular,", 
     "time": "2015-11-14", 
     "": "" 
    }, 
    ... 
    ] 
} 

私はdata内のすべてのid年代を返すようにしたいので、私はこの機能を試してみました:

function getPlaylist(id) { 
    $.ajax({ 
     type: "GET", 
     url: baseUrl+"/playlist.php?id="+id, 
     cache: false, 
     success: function(result) { 
      var samples = JSON.parse(result); 
      for (i in samples) 
      { 
       console.log(samples.data[i].id + "<br />"); 
      } 
     } 
    }); 
} 

私はコンソール

Uncaught TypeError: Cannot read property 'id' of undefined

からこのエラーを参照してくださいしかし、

私も試しましたforループ(コンソールからの構文エラー)

for(var i = 0; i < samples.data.length; i++) 
{ 
    var product = samples.data[i]; 
    var productId = product.id; 
    console.log(productId); 
} 

私が欲しいのは、私はJSONに非常に精通していないよ、ので、どのように私はアクセスすることができ、正しく私の構造を反復出力5, 8(私のid年代)

のですか?

+0

可能性のある重複した[私はJSON構造を反復するにはどうすればよい?](http://stackoverflow.com/questions/1078118/how-do-i-iterate-over-a-json-structure) – Ryan

答えて

1

のようなコードを置き換えることができます。

function getPlaylist(id) { 
    $.ajax({ 
     type: "GET", 
     url: baseUrl+"/playlist.php?id="+id, 
     cache: false, 
     success: function(result) { 
      var samples = JSON.parse(result); 
      for (i in samples.data) 
      { 
       console.log(samples.data[i].id + "<br />"); 
      } 
     } 
    }); 
} 
+0

コンソールから 'Uncaught SyntaxError:JSONの位置0の予期しないトークンu'を参照してください。 – NineCattoRules

+0

はい、申し訳ありません。私は間違って言った。私はただそれを修正した。 – byumark

+0

今、 'Uncaught SyntaxError:予期しないトークン<位置1のJSONで 'と表示されます – NineCattoRules

1

map関数を使用して配列を別の配列に変換できます。 Ajaxの機能で

var dataJSON = { 
 
     "draw": 0, 
 
     "recordsTotal": 90, 
 
     "recordsFiltered": 41, 
 
     "data": [ 
 
     { 
 
      "id": "5", 
 
      "art": "default/def2.jpg", 
 
      "full_name": " ", 
 
      "title": "Hellberg - The Girl | Atomik Remix", 
 
      "tag": "music", 
 
      "time": "2015-11-14", 
 
      "": "" 
 
     }, 
 
     { 
 
      "id": "8", 
 
      "art": "default/def2.jpg", 
 
      "full_name": "Simon Deoro", 
 
      "title": "Tim McMorris-On (Single)", 
 
      "tag": "dance,popular,", 
 
      "time": "2015-11-14", 
 
      "": "" 
 
     }, 
 
     
 
     ] 
 
    }; 
 
     
 

 
var obj = dataJSON.data.map((currentValue) => currentValue.id); 
 
console.log(obj);
、あなたは samples.dataにする必要があり samplesこの

function getPlaylist(id) { 
    $.ajax({ 
     type: "GET", 
     url: baseUrl+"/playlist.php?id="+id, 
     cache: false, 
     success: function(result) { 
      var samples = JSON.parse(result); 
      var idArray = samples.data.map(x => x.id); 
      console.log(idArray); 
     } 
    }); 
+0

私のAjaxリクエストでこれを行う方法を教えてください。 – NineCattoRules

+1

が答えを更新しました。 – Agalo

関連する問題