我被這件事難住了一段時間。我對谷歌腳本應用程式相當陌生,想看看是否有辦法做到這一點。到目前為止,我在 Google Sheet 中使用了一些方法,但似乎無法正常作業。
下面的代碼確實為我提供了所有資料的輸出,但是,嵌套在其中的資料data.custom_fields[x]有多個物件,這些物件用“,”分隔。我希望能夠過濾掉其他關鍵詞,只使用里面的任何東西"display_value="。并不總是在同一區域,display_value=因此必須搜索它們。
我假設這里會使用某種 If 陳述句..
該物件的一個??示例是:
{type=x, resource_subtype=x, created_by={name=x, gid=x, resource_type=x}, display_value=Cool Value, description=x, enabled=x, resource_type=custom_field, gid=x, enum_options=[x.lang.Object;x, enum_value={x}, name=x}
我也嘗試過,split但不確定如何過濾掉我需要的單詞。
function Users() {
var options = {
"headers" : {
"Authorization": "API Key here"
}
}
var response = UrlFetchApp.fetch("URL here", options);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var sheet = ss.getSheetByName("Tab Name here"); // specific sheet name getSheetByName(""); alternatively use ss.getActiveSheet()
var dataAll = JSON.parse(response.getContentText()); //
var dataSet = dataAll.data; // "data" is the key containing the relevant objects
var rows = [],
data;
for (i = 0; i < dataSet.length; i ) {
data = dataSet[i];
rows.push([
data.gid,
data.name,
data.permalink_url,
data.due_on,
data.custom_fields[1],
data.custom_fields[2],
data.custom_fields[4],
data.custom_fields[5],
data.custom_fields[6],
data.custom_fields[7],
data.custom_fields[8],
data.custom_fields[9],
]); //your JSON entities here
}
// [row to start on], [column to start on], [number of rows], [number of entities]
dataRange = sheet.getRange(2, 1, rows.length, 12);
dataRange.setValues(rows);
先感謝您!
JSON 匯入資料的示例影像
uj5u.com熱心網友回復:
盡管它們以,'s 分隔,但這只是它們在日志中的顯示方式。因為您正在使用JSON.parse,所以您正在接收/轉換為物件,而不是字串。
因為data.custom_fields是一個物件陣列,您可以訪問屬性/鍵值作為 : data.custom_fields[x].display_value。
學到更多:
- JSON.parse()
- 訪問物件屬性
uj5u.com熱心網友回復:
如果要提取 display_value,請嘗試
let myVal = myData.match(/(?<=display_value=)[^,] /g)[0]
我猜 myData 可能是 data.custom_fields[5],所以將其替換為
data.custom_fields[5].match(/(?<=display_value=)[^,] /g)[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/489361.html
標籤:javascript json 擅长 谷歌应用脚本
上一篇:尋找船員配對的可能性
