代码之家  ›  专栏  ›  技术社区  ›  jyoseph

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

  •  6
  • jyoseph  · 技术社区  · 15 年前

    我第一次深入研究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”或另一个“photo caption”导致脚本中断,它正在输出NaN。

    在键名中使用连字符有问题吗?或者我这一切都错了?

    3 回复  |  直到 13 年前
        1
  •  20
  •   Jason Berry    15 年前

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

        2
  •  3
  •   redsquare    15 年前

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

        3
  •  1
  •   Christian C. Salvadó    15 年前

    使用 bracket notation 访问成员:

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