我最近改变了我的网站设计,现在需要对我的数据使用动态AJAX请求。基本上,我正在尝试使用JSON格式的Last.FM API检索用户数据。
我对此很新,特别是JSON,它让我有点头疼!我知道我必须遗漏一些简单的东西。
以下是测试功能的一些非常基本的代码,但它不会检索任何内容!
<html>
<head>
<script src="./jquery/jquery-1.4.4.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback=?", function(data) {
$.each(data.topartists.artist, function(i,item){
html += "<p>" + item.name + " - " + item.playcount + "</p>";
});
$('#test').append(html);
});
});
</script>
<div id="test"></div>
</body></html>
有什么建议吗?
我希望能够在整个页面中使用JSON对象,例如,在任何时候我都可以调用topartists.artist [i] .playcount;显示playcount等。我该怎么做?
答案 0 :(得分:3)
必须在each
:
//var topArt;
$(document).ready(function() {
$.getJSON("http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback=?", function(data) {
var html = '';
$.each(data.topartists.artist, function(i, item) {
html += "<p>" + item.name + " - " + item.playcount + "</p>";
});
$('#test').append(html);
// topArt = data.topartists;
});
});
至于你的第二个问题,你需要一个全局变量。您可以将它放在$(document).ready()
之前(如评论中所示),它随处可见。
答案 1 :(得分:0)
我尝试使用以下网址 “http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json&callback=?”
它给出了格式不正确的json但是如果我使用以下URL “http://ws.audioscrobbler.com/2.0/?method=user.getTopArtists&user=test&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&limit=5&format=json”
我得到了正确的JSON。
此外,您必须将html声明为上面给出的响应。