Как извлечь информацию из вложенных массивов с несколькими объектами ?? (AdminReport.Activities.list) - PullRequest
0 голосов
/ 22 апреля 2020

Может ли кто-нибудь указать мне правильное направление? Я много искал ... Мне не повезло с отображением ... или "найти", ни извлечь нужные мне данные.

Мой код:

function checkMeetCode(meetCode, index, searchDate) {
  var ss=SpreadsheetApp.getActive().getSheetByName('AsistenciaMeet');
  var colB = ss.getRange("D3:D").getValues(); 
  var filasLlenasLengthB = colB.filter(String).length; // 

  var userKey = 'all';
  var applicationName = 'meet';
  var emailAddress = colB[index];
                               Logger.log("Index / Alumno: "+index+" / " + emailAddress);
  var optionalArgs = {
      event_name: "call_ended",
      endTime: searchDate,   
      startTime: fechaRestada(searchDate),
      filters: "identifier==" + emailAddress + ",meeting_code==" + meetCode 
    };

      var response = AdminReports.Activities.list(userKey, applicationName, optionalArgs)
      Logger.log("RESPONSE: "+response);

      var actividad = response.items;

      if (actividad == null) {
         // do nothing
      }
      else {

        **// HERE IS WHERE I AM TRYING TO FIND / EXTRACT INFORMATION FROM "response"
        // READ BELOW PLEASE.**
      }

}

НУЖНА ПОМОЩЬ С: Я хочу НАЙТИ / ЭКСТРАКТИРОВАТЬ intValue "duration_seconds" :

Результаты:

Logger.log("RESPONSE: "+response);

ОТВЕТ: {"kind": "admin # reports # activity" , "ETag": "\" JDMC8884sebSctZ17CIssbQ / IhilrSKVziEhoZ7URUpQ-NrztHY \ "", "элементы": [{ "события": [{ "параметры": [{ "имя": "video_send_seconds", "intValue": "1829" }, { "имя": "screencast_recv_packet_loss_mean", "intValue": "0"}, { "имя": "identifier_type", "значение": "email_address"}, { "имя": "video_send_packet_loss_max", "intValue" : "0"}, { "Name": "endpoint_id", "значение": "meet_android_4154513448557872"}, { "имя": "video_recv_long_side_median_pixels", "intValue": "320"}, { "имя": "calendar_event_id" , "значение": "44jr4vu3qo75q6bvkknq_20200421T213000Z"}, { "имя": "video_send_fps_mean", "intValue": "29"}, { "имя": "video_recv_short_side_median_pixels", "intValue": "180"}, { "имя" : "network_estimated_download_kbps_mean", "intValue": "3 51 "}, {" имя ":" DURATION_SECONDS», "intValue": "1830"}, { "имя": "video_send_bitrate_kbps_mean", "intValue": "762"}, { "имя" : "network_recv_jitter_msec_max", "intValue": "130"}, { "имя": "ip_address", "значение": "186.59.21.55"}, { "имя": "audio_send_seconds", "intValue": "1829" }, { "имя": "screencast_recv_packet_loss_max", "intValue": "0"}, { "имя": "video_recv_seconds", "intValue": "1818"}, { "имя": "network_rtt_msec_mean", "intValue" : "36"}, { "имя": "video_send_long_side_median_pixels", "intValue": "640"}, { "имя": "screencast_recv_seconds", "intValue": "1829"}, { "имя": "product_type" , "значение": "соответствует"}, { "имя": "video_recv_packet_loss_max", "intValue": "0"}, { "имя": "is_external", "boolValue" ложь}], "название":» call_ended "," type ":" call "}] ...

1 Ответ

0 голосов
/ 22 апреля 2020

ОК, примерно через 8 часов ... Я смог заставить его работать.

var insideParameters = response["items"][0]["events"][0]["parameters"];
Logger.log(insideParameters.length);

for (var i = 30; i<insideParameters.length;i++){ // its always located above i = 30...
  if(insideParameters[i].name === "duration_seconds"){
    var duration = insideParameters[i].intValue;
    Logger.log(duration);
  }   
}
...