У меня есть запрос, который возвращает большой JSON:
function fetchDataFromApi(request, params) {
var url = 'https://someurl/get-records?' +
'school=someSchool&' +
'year=';
var yearToday = parseInt(new Date().getFullYear());
var requests = [];
for (var i = 2011; i < yearToday; i++)
{
requests.push(url + i);
}
return JSON.parse(UrlFetchApp.fetchAll(requests).map(function(e) { return e.getContentText()}));
}
Я разделил его по годам, чтобы UrlFetchApp не приходилось иметь дело с ограничением BLOB-объектов размером 50 МБ. Однако выдает ошибку:
Exception details: InternalError: Array length 53673928 exceeds supported capacity limit.
Но когда я пытаюсь получить доступ к каждому элементу ответа, например
JSON.parse(UrlFetchApp.fetchAll(requests)[0].getContentText()
... работает нормально.
Любая идея о том, что вызывает проблему?
Я также попытался разделить все ответы на отдельные запросы.
var responses = []
for (var i = 2011; i < yearToday; i++)
{
var request = url + i;
responses.push(UrlFetchApp.fetch(request).getContentText());
}
var json = JSON.parse([].concat.apply([], responses));
return json;
но эта ошибка выдается в Google Data Studio:
Array length 68522537 exceeds supported capacity limit.