【问题标题】:parsing a JSON fails with missing element in javascript解析 JSON 失败,javascript 中缺少元素
【发布时间】:2013-09-30 03:29:28
【问题描述】:

我正在尝试在 javascript 中使用 Youtube 的 Gdata JSON 响应。我的代码遍历播放列表并提取项目数据。但是对于少数视频,评级不存在,这会引发

“类型错误:item.gd$rating 未定义”

有没有办法在访问元素之前进行检查。

这是我获取 json 响应的代码。

    var avgrating = item['gd$rating']['average'];
    var maxrating = item['gd$rating']['max'];
    var minrating = item['gd$rating']['min'];
    var numRaters = item['gd$rating']['numRaters'];

【问题讨论】:

    标签: javascript jquery json parsing


    【解决方案1】:

    避免错误的一种方法是

    var rating = item['gd$rating'] || {}; // If it is undefined default it to empty object
    var avgrating = rating['average']; //now if it is not present it will just give undefoned as value
    var maxrating = irating['max'];
    var minrating = rating['min'];
    var numRaters = rating['numRaters'];
    

    或显式检查:

      var rating = item['gd$rating'], avgrating, maxrating;
      if(rating) 
      {
           avgrating = rating['average'];
           maxrating  =rating['max'];
           ... 
      }
    

    请注意,在 if 条件中,我们正在检查表达式的真实性,因此,除了 undefined、null、""、false、0 之外的任何内容都将被视为 true 并进入条件.但是在这里你可以确定它要么是一个对象,要么什么都不是,所以你可以依赖这个检查。

    【讨论】:

    • 像魅力一样工作 :-) 非常感谢
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2018-04-08
    • 2021-01-05
    • 2015-08-17
    相关资源
    最近更新 更多