JavaScript没有警告JSON数据

时间:2012-11-12 10:19:52

标签: javascript json

下面给出的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;
        }

3 个答案:

答案 0 :(得分:4)

我添加了此fiddle。你的.each逻辑工作得很好,假设你的JSON数据像你的例子所说的那样回来了。所以问题必须在你的PHP脚本中返回JSON。

以下是测试你的.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);                     
});​

答案 1 :(得分:0)

据我所知,当你想提醒json数据它只显示[object Object]时,使用console.log()代替,需要安装firebug

答案 2 :(得分:0)

假设响应有效,请验证服务器响应的Content-Type标头是否正确设置为application / json