2016-05-08 9 views
1
などの値

私はJSONファイルからデータを引っ張っている:私は様々な段階ではconsole.logを試みたと私まで、問​​題はありませんのJavaScript/jQueryのJSONアレイ号 - 未定義

[ 
{ 
    "video": "video/preroll" 
}, 
{ 
    "video": "video/areyoupopular" 
}, 
{ 
    "video": "video/destinationearth" 
}] 

下の段階に進んでください。私はJSON文字列の各ビデオの値を必要とし、それらをplaylistというラベルの配列に入れます。私が使用しているコードは次のとおりです。

$(function() { 
    var playlist = []; 

    var url = "http://localhost/class_files2/week7.1/video-data.json"; 

    $.get(url, function(data) { 
     // console.log(data); at this point returns the JSON string as expected. 
     for (var i=0; i<data.length; i++) { 
      playlist.push(data[i].video); 
     } 
     console.log(playlist); 
    }); 
}); 

配列がアップ見せているが、いくつかの未定義の値を(スクリーンショットを参照します)。 array error

私はプレイリスト配列にビデオ値を取得する必要があります。私は、同じファイルを使用して期待通りに値をプレイリスト配列にプッシュしている他の人の助けを得ました。

プッシュの前にconsole.logを配置するとJSON文字列が取得されますが、これは156回実行されます(スクリーンショット参照)。 array 156

私は新しいファイルの作成と再入力(コピーと貼り付けではない)を試みました。私は完全なAJAX GETメソッドを使用しようとしています。私はそれが私の声明では何かだと確信していますが、すべてが正しいようです。私は他の誰かの助けを借りて手を差し伸べていましたが、問題なくアレイを期待通りに取得しています(2番目のスクリーンショット)。 XAMPP for OS X 1.8.3-4を実行しています MacBook Pro(Retina、13インチ、2013年後期) OSX El Capitan 10.11.4 Chrome、Firefox、Safariで同じエラーが発生します。

何が問題になる可能性がありますか?計算されていない別の変数がない限り、他の誰かのコンピュータ上の同じファイルが動作するように見えるので、特に奇妙です。

+0

コードは正常です。おそらくあなたのデータファイルが壊れています –

+0

あなたは私に 'data'のタイプを教えてくれますか? forループ 'console.log(typeof(data));の前に行を追加しました。疑問です、それはjson文字列です –

+0

' var playlist = []; '宣言を非同期' get'関数の中に挿入して返します。その結果として。プレイリストが定義された同期関数内で非同期関数を実行しています。 – Redu

答えて

1

リスト/アレイでforループを使用しないでください。 forEachループを使用します。

お試しください。

$.get(url, function(data) { 
    // console.log(data); at this point returns the JSON string as expected. 
    data = JSON.parse(data); 
    data.forEach(function(item) { 
     playlist.push(item.video); 
    }); 
    console.log(playlist); 
}); 
+0

私はこれをオプションとして好きですが、エラーが発生しています TypeError:data.forEachは関数ではない なぜこの世間一般は? – user5745356

+0

それは、データが配列ではないことが確かです、それはjson文字列です。まずそれを解析する必要があります。私は私の答えを更新しています。 –

+1

[$ .get()](https://api.jquery.com/jquery.get/)には、期待しているデータの種類を指定できる別の引数もあります。 – Mikey

関連する問題