Чтобы установить сцену, вот запрос, который я делаю с помощью Google Apps Script ...
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" из undefined. в getHvdcData (demo_site: 79)
Строка 79 в моем коде выделяет атрибут ответа JSON, который я затем добавляю в массив, который помещается на лист Google (input.push(dataLevel[i].date);
). Я понимаю, что в моем коде нет строк, которые бы конкретно определяли атрибут (ы), но подумал, что это часть функции JSON.parse. Сценарий по-прежнему может прочитать .date
, добавить соответствующее значение в var input = [];
и вставить его в лист Google.
Если ошибка генерируется из-за того, что я специально не объявляю, что такое .date
, есть ли способ отключить проверку для этой части кода? Учитывая, что сценарий по-прежнему вставляет данные, как и ожидалось, меня это обычно не беспокоит, однако я также создал триггер, основанный на времени, для его запуска. В настоящее время мои исполнения находятся на 100% Сбой из-за этого, и я бы предпочел, чтобы на странице «Выполнение триггера» отображалось только то, где не удалось запустить мой скрипт.
Любая помощь или совет с благодарностью.