【问题标题】:jQuery - parsing JSON data - Having trouble with variable namejQuery - 解析 JSON 数据 - 变量名有问题
【发布时间】:2009-08-05 06:04:30
【问题描述】:

我第一次深入研究使用 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。

键名中包含连字符是否有问题?还是我做错了?

【问题讨论】:

    标签: javascript jquery json api tumblr


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 所以我应该在每次迭代中构建一个字符串,然后输出最终的字符串?这是中肯的建议,我没有考虑过。谢谢!
      【解决方案3】:

      使用bracket notation 访问成员:

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

      【讨论】:

      • 感谢您的链接,非常有帮助,现在正在查看。
      猜你喜欢
      • 1970-01-01
      • 2017-12-16
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多