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

时间:2009-08-05 06:04:30

标签: javascript jquery json api tumblr

我第一次尝试使用JSON数据。我有一些使用jQuery的经验。

我发布到此网址(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。

键名中有连字符有问题吗?或者我是不是错了?

3 个答案:

答案 0 :(得分:20)

如果名称中有短划线,则需要以不同方式访问它们。将var photo500 = this.photo-url-500;更改为var photo500 = this["photo-url-500"];

答案 1 :(得分:3)

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

答案 2 :(得分:1)

使用bracket notation访问成员:

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