jQuery – 解析JSON数据 – 变量名称有问题

我第一次尝试使用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('
  • ' +id+ ' - ' +type+ ' - ' +date+ ' - ' +url+ ' - ' +photo500+ ' - ' + '
  • '); }); }); });

    请参阅我的jsbinpost了解整个脚本: http ://jsbin.com/utaju/edit

    来自tumblr的一些键在其中有“ – ”连字符,这似乎导致了一个问题。 正如您所看到的那样,“photo-url-500”或其他“照片标题”导致脚本中断,它正在输出NaN。

    在密钥名称中使用连字符有问题吗? 或者我这样做错了吗?

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

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

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

     var photo500 = this['photo-url-500'];