jQuery - 解析JSON数据 - 变量名出现问题

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”或另一个“photo-caption”导致脚本崩溃,输出NaN。
在键名中使用连字符有问题吗?还是我的做法不对?
3个回答

20

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


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

那么我应该在每次迭代中构建一个字符串,然后输出最终的字符串?这是很好的建议,我没有想到。谢谢! - jyoseph

1

谢谢你提供的链接,非常有帮助,我现在正在查看。 - jyoseph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接