6

我第一次深入研究使用 JSON 数据。不过,我有一些使用 jQuery 的经验。

我发布到这个 URL (tumblr api): jyoseph.com/api/read/json

我想要做的是输出返回的 json。到目前为止我所拥有的:

$(document).ready(function(){ 

$.getJSON("http://jyoseph.com/api/read/json?callback=?", 
  function(data) { 
    //console.log(data); 
    console.log(data.posts);         

      $.each(data.posts, function(i,posts){ 
        var id = this.id; 
        var type = this.type; 
        var date = this.date; 
        var url = this.url; 
        var photo500 = this.photo-url-500; 

        $('ul').append('<li> ' +id+ ' - ' +type+ ' - ' +date+ ' - ' +url+ ' - ' +photo500+ ' - ' + ' </li>'); 
      }); 

  }); 

});

有关整个脚本,请参阅我的 jsbin 帖子:http: //jsbin.com/utaju/edit

来自 tumblr 的一些键中有“-”连字符,这似乎导致了问题。如您所见,“photo-url-500”或其他“照片说明”导致脚本中断,它输出的是 NaN。

键名中包含连字符是否有问题?还是我对这一切都错了?

4

3 回答 3

20

如果名称中有破折号,您需要以不同的方式访问它们。改为var photo500 = this.photo-url-500;阅读var photo500 = this["photo-url-500"];

于 2009-08-05T06:08:15.117 回答
3

请注意,最好不要在每次迭代中追加。最好追加到字符串或推送到数组,然后在迭代器完成后追加一次。附加到 dom 是昂贵的。

于 2009-08-05T07:45:15.407 回答
1

使用括号表示法访问成员:

var photo500 = this['photo-url-500']; 
于 2009-08-05T06:11:09.807 回答