Я пытаюсь извлечь некоторую информацию из массива JSON в Google Sheet, получить часть этой информации и скопировать ее в два столбца рядом с ней.
Данные, которые мне нужны, находятся в столбце L мой лист (начиная со строки 2) и в формате:
[{"id": "XX:123456", "timestamp": "2020-01-27T19:25:51.303"}, {"id": "XX:654321", "timestamp": "2020-01-27T19:40:37.06"}]
В настоящее время мой сценарий выглядит следующим образом:
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("parsed");
var dataRange = sheet.getDataRange();
var lastRow = dataRange.getLastRow();
function parseData() {
for (var row=2; row<lastRow; row++)
{
var parseRange = sheet.getRange(row,12,5,1)
var json = JSON.parse(parseRange.getValue());
var lastObject = json.length-1;
var org = json[lastObject];
var orgID = org.id;
var timestamp = org.timestamp;
sheet.getRange(row, 13).setValue(orgID);
sheet.getRange(row, 14).setValue(timestamp);
}
}
Это очень много времени, чтобы процесс, как он читает и пишет каждую строку по очереди. Я предположил, что массив JSON уже находится в последовательном порядке, но, проверив, кажется, он случайный. В идеале я хотел бы сначала отсортировать массив по отметке времени, затем взять объект с последней отметкой времени и записать эти данные в столбцы M и N и сделать это более эффективным способом.