2

以下に示すURLのJSONデータは次のようになります。

{
   "datum":[
      {
         "id":"19",
         "song":"The Age of Worry",
         "path":"audio/age.mp3",
         "artist":"John Mayer",
         "album":"Born And Raised",
         "genre":"Blues-Rock",
         "year":"2012",
         "filename":"age",
         "extension":".mp3",
         "size":"6.1539077758789 MB ",
         "duration":"2:40",
         "downloads":"0"
      }
   ]
}

曲名を知らせたい。以下のコードはIDのみをアラートし、曲はアラートしません。ここで何が悪いのか理解できませんでした。


switch(id){
        case "1":
            alert(id);              
            $.getJSON("http://localhost/musicstore/search.php?media=audio&search_by=song&search_string=age", function(d) {
                 $.each(d.datum, function (i, res) {
                       alert(res.song);                     
                    });

            }); 

            break;
        case 2:
            break;
        case 3:
            break;
        }
4

3 に答える 3

4

このフィドルを追加しました。例にあるようにJSONデータが戻ってくると仮定すると、.eachロジックは正常に機能しています。したがって、問題はJSONを返すPHPスクリプトにあるはずです。

.eachロジックをテストするための簡略化されたフィドルは次のとおりです。

var jsonData = {"datum":[{"id":"19", "song":"The Age of Worry", "path":"audio/age.mp3", "artist":"John Mayer", "album":"Born And Raised", "genre":"Blues-Rock", "year":"2012", "filename":"age", "extension":".mp3", "size":"6.1539077758789 MB ", "duration":"2:40", "downloads":"0" }]};
$.each(jsonData.datum, function (i, res) {
    alert(res.song);                     
});​
于 2012-11-12T10:27:52.753 に答える
0

私が知っている限り、jsonデータにアラートを送信したい場合は、次のよう[object Object]に表示されます。代わりにconsole.log()を使用し、そのためにfirebugをインストールする必要があります

于 2012-11-12T10:22:07.670 に答える
0

応答が有効であると仮定して、サーバーからの応答のContent-Typeヘッダーがapplication/jsonに正しく設定されているかどうかを確認します

于 2012-11-12T10:24:58.093 に答える