解析 JSON 失败,JavaScript 中缺少元素

parsing a JSON fails with missing element in javascript

本文关键字:元素 JavaScript JSON 失败 解析      更新时间:2023-09-26

我正在尝试在javascript中使用Youtube的Gdata JSON响应。我的代码循环访问播放列表并提取项目数据。但对于少数视频,评级不存在,这抛出

"TypeError: item.gd$rating is undefined"

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

这是与我获取 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'];

避免错误的一种方法是

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 条件中,我们正在检查表达式的真实性,因此,除了未定义、null、"、false、0 之外的任何内容都将被视为 true,并将进入条件。但是在这里,您可以确定它要么是一个对象,要么什么都没有,因此您可以依靠此检查。