要设置场景,这是我通过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%,我希望“触发器执行”页面仅显示脚本运行失败的地方。
非常感谢您的帮助或建议。