2012-02-13 2 views
0

Я только что начал с lastfm и json. я могу получить информацию, которую хочу вернуть значениям объектов в консоли, но я не могу понять, почему я продолжаю получать значение «неопределенный». вот мой код. благодаря!lastfm Объект JSON, возвращающийся «undefined»

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html> 
<head> 
    <title>JSON LastFM API Test</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $.getJSON("http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&artist=Bjork&api_key=690e1ed3bc00bc91804cd8f7fe5ed6d4&format=json&callback=?", function(data) { 
      var html = ''; 
      $.each(data.artist, function(i, item) { 
       html += "<p>" + item.name + "</p>"; 
       console.log(data); 
      }); 
      $('#test').append(html); 
     }); 

    </script> 

    <div id="test"></div> 
</body> 

+0

@ZeeTee Это не должно иметь значения. – alex

ответ

1

Он появляется возвратил JSON не является массивом.

Может быть, вы можете попробовать

$.getJSON("http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&artist=Bjork&api_key="+ apikey+"&format=json&callback=?", function(data) { 
     $('#test').append("<p>" + data.artist.name + "</p>"); 
}); 
+0

спасибо ironchefpython. что вы написали, но я продолжал идти. используя то, что вы написали, помогло мне разобраться, как писать мои в контексте, в котором я нуждался. я закончил писать $ .getJSON ("http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&artist=Bjork&api_key=0bd6c5780da878f5bb51393e84329809&format=json&callback=?", функция (данные) { \t \t \t вар HTML = ''; \t \t \t $ .each (данные, функция (я, п) { \t \t \t HTML + = "

" + data.artist.name + "

"; \t \t \t console.log (данные); \t \t \t}); \t \t \t $ ('# test'). Append (html); \t \t \t}); – heyjohnmurray

+0

Ваш '$ .each' в этом контексте лишний, так как существует только одно свойство' data'. – ironchefpython

+0

Да, это то, что я понял. благодаря! – heyjohnmurray

0

Если это просто имя, которое вы хотите иметь это довольно просто в этом случае:

$.each(data, function(i, item) { 
     html += "<p>" + item.name + "</p>"; 
     html += "<p>" + item.url + "</p>"; 
     console.log(data); 
    }); 
    $('#test').append(html); 

Просьба представить мне более сложных условиях, так что я может помочь вам в этом.