google apps脚本返回“未定义”错误消息,但仍然完成

时间:2018-11-07 01:22:01

标签: google-apps-script

要设置场景,这是我通过Google Apps脚本发出的请求...

function getHvdcData() {
  // call the API
  var response = UrlFetchApp.fetch(dDomain + epHvdc, dParams);
  var json = JSON.parse(response.getContentText());
  Logger.log(json);

  // define array location in response 
  var dataLevel = json['data']['hvdcFlow'];

  for (var i = 0; i <= dataLevel.length; i++) {
    var input = [];
    input.push(dataLevel[i].date);
    input.push(dataLevel[i].period);
    input.push(dataLevel[i].flow);
    input.push(dataLevel[i].direction);
    input.push(now = new Date());
    shtHvdc.appendRow(input);
  }
}

这是响应中返回的示例...

{
    resultCode:200, 
    message:"Success", 
    generated:"2018-11-07T14:00:46", 
    expires:"2018-11-07T14:05:46", 
    data:{
        hvdcFlow:[
            {
                date:"2018-11-07T00:00:00", 
                period:27, 
                flow:387.446, 
                direction:"North"
            }
        ]
    }
}

我希望有人能帮助我理解为什么收到此消息

  

TypeError:无法从未定义中读取属性“ date”。在getHvdcData(demo_site:79)

我的代码中的第79行选择了JSON响应的属性,然后将其添加到一个数组中,该数组将被推送到Google工作表(input.push(dataLevel[i].date);)。我意识到我的代码中没有专门定义属性的行,但认为这是JSON.parse函数的一部分。该脚本仍然能够读取.date并将关联的值添加到var input = [];并将其插入到Google工作表中。

如果由于我没有明确声明.date而产生错误,是否可以关闭对这部分代码的验证?鉴于脚本仍按预期插入数据,通常我不会担心,但是我也为此创建了一个基于时间的触发器。目前,由于这个原因,我的执行失败率为100%,我希望“触发器执行”页面仅显示脚本运行失败的地方。

非常感谢您的帮助或建议。

0 个答案:

没有答案