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