簡體   English   中英

如何使用 Javascript/GAS 在 JSON 響應中訪問子數據

[英]How do I access children data in JSON response using Javascript/GAS

我試圖從 Json 響應中訪問兒童數據以在if語句中使用它,但我不知道如何。 有人知道怎么做嗎?

這是響應的屏幕截圖,我圈出了要訪問的對象。 如果批准具有值,即狀態需要掛起或批准,我只希望求和發生,否則,不會發生任何計算。

在此處輸入圖片說明

這是我使用的代碼,但不知道如何從 JSON 訪問approaval={data=[{status}]以使用它

function showTimeData() {

    var users = getUsers()
    var endpoint = 'users/';
    var time_array = [];

    for (var i = 0; i < users.length; i++) {

        var url = 'https://api.10000ft.com/api/v1/users/' + users[i].id + '/time_entries?fields=approvals' + '&from=' + from + '&to=' + to + '&auth=' + TKF_AUTH;
        var response = UrlFetchApp.fetch(url, options);
        var info = JSON.parse(response.getContentText());
        var content = info.data;
        var total_hours = 0;


        for (var j = 0; j < content.length; j++) {
            if (content.data.approvals.data.length > 0) {
                hoursTotal = 0;
            }
            total_hours += parseInt(content[j].hours);
        }


        Logger.log('User name: ' + users[i].display_name + ' ' + 'User id: ' + users[i].id + '  ' + 'total hours: ' + total_hours)
    }

首先。 您需要修復錯誤(在評論中的聊天中提到):替換此

if (content.data.approvals.data.length > 0) {
  hoursTotal = 0;
}

有了這個

if (content[j].approvals.data.length > 0) {
  hoursTotal = 0;
}

那么你需要的是:

content[0].approvals.data[0].status

status數組:

content[0].approvals.data.map(el => el.status)

或所有status的數組:

content.map(el => el.approvals.data.map(it => it.status)).flat(1)

但最后一個例子只適用於相當新的瀏覽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM