使用appscript从JSON获取值

问题描述

我正在使用Chrome设备用户和来自目录的JSON响应,使用google appscript创建二维数组。我已经能够获得价值。但是,当我尝试将最近用户表示为:

ubuntu-xenial 16.04.7 LTS
jfrog-artifactory-oss-6.21.0.zip 

我得到一个数组,但是我无法获得该值。我正在尝试获取新用户的电子邮件。有人有使用脚本的经验吗?我已经尝试了最近用户[0] .email和最近用户[0] ['email']。这是我必须执行的代码://我在试图推入值的地方添加了注释 在此处输入代码

    {
    "kind": "directory#chromeosdevices","chromeosdevices": [
     {
       "kind": "directory#chromeosdevice","etag": "1234567890"
       "deviceid": "def456","serialNumber": "234567","status": "ACTIVE","lastSync": "2013-03-05T17:30:04.325Z","supportEndDate": "2014-04-05T17:30:04.325Z","annotatedUser": "help desk","annotatedLocation": "Mountain View help desk Chromebook","annotatedAssetId": "1234567890","notes": "Loaned from support","orderNumber": "1234","willAutoRenew": true,"osversion": "browser Version 18.0","platformVersion": "Platform Version 1415.2.0","firmwareversion": "Firmware Version 1.2.3.4","bootMode": "validated","lastEnrollmentTime": "2012-04-05T17:30:04.325Z","orgUnitPath": "corp/engineering","recentUsers": [
         {
           "type": "USER_TYPE_MANAGED","email": "[email protected]" //I'm trying to get the most recent user's email 
         }
       ],"activeTimeRanges": [
         {
           "date": "2012-04-05","activeTime": "3600000"
         }
       ],}
  ],"nextPagetoken": "abcdefghijkl123"
}

解决方法

您非常接近,您唯一需要更改的就是在循环内用动态recentUsers[0]替换静态recentUsers[j]

示例:

function getChromes(){
  var chromeArgs = {   
    maxResults: 200,orderBy: 'annotatedUser',projection: "FULL"  
  };   
  var getChromes = (AdminDirectory.Chromeosdevices.list('XXXXXXXXX',chromeArgs));  
  var chromes = getChromes.chromeosdevices;
  if (chromes && chromes.length > 0) {
    Logger.log('Devices:');
    var wholeValues = [];    
    for (var i = 0; i < chromes.length; i++){  
      var chrms = chromes[i];
      var recentUser = chrms.recentUsers;
      var value = [];
      for (var j = 0; j < recentUser.length; j++) {
        Logger.log(recentUser[j].email);
        value.push(recentUser[j].email); 
      } 
      wholeValues.push(value);
    }     
    Logger.log(wholeValues); 
  }
}

请注意,您需要动态地j < recentUser.length;而不是j < 1指定内部循环的迭代限制,以说明每个chrome设备最近用户的数量。