Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript读取/访问多维对象_Javascript_Google Apps Script_Telegram Bot - Fatal编程技术网

如何使用JavaScript读取/访问多维对象

如何使用JavaScript读取/访问多维对象,javascript,google-apps-script,telegram-bot,Javascript,Google Apps Script,Telegram Bot,我正在开发一个电报机器人,需要确定谁是组中的管理员 我们使用JavaScript开发了一个GoogleWeb应用程序,并调用以下方法 getChatAdministrators 使用此方法可以获取聊天中的管理员列表。成功后,返回包含所有聊天管理员信息的ChatMember对象数组 此方法将返回以下内容: [20-03-1417:14:23:403 AEDT] {"ok":true, "result": [{"user":{"id":810784352,"is_bot":false,"first

我正在开发一个电报机器人,需要确定谁是组中的管理员

我们使用JavaScript开发了一个GoogleWeb应用程序,并调用以下方法 getChatAdministrators 使用此方法可以获取聊天中的管理员列表。成功后,返回包含所有聊天管理员信息的ChatMember对象数组

此方法将返回以下内容: [20-03-1417:14:23:403 AEDT]

{"ok":true,
 "result":
[{"user":{"id":810784352,"is_bot":false,"first_name":"Rafael","last_name":"Vasconcelos"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false},
 {"user":{"id":1021450393,"is_bot":false,"first_name":"Mauro","last_name":"Ramires"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false},
 {"user":{"id":998081853,"is_bot":false,"first_name":"Filipe","last_name":"Lima"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false},
 {"user":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"status":"creator"},
 {"user":{"id":307271095,"is_bot":false,"first_name":"Leandro","last_name":"Silva","username":"Leandro_CRF"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}
]
}
问题: 我正在努力找到正确的JavaScript语法来阅读: id、名和姓 对于方法返回的响应 getChatAdministrators

提前感谢您的帮助


Trajano Roberto

假设上述输出对象位于变量
obj
中,您可以使用以下代码段记录每个用户的详细信息:

 var results = obj.result;  
  if (results.length > 0) {
    for (var r in results) {
      var user = results[r].user;
      Logger.log([user.id, user.first_name, user.last_name])
    }
  }

要理解这一点,如果解析对象(在a中),则所有用户都位于
result
中的一个数组中。每个用户的详细信息都在
user
中假设上述输出对象位于变量
obj
中,您可以使用以下代码段记录每个用户的详细信息:

 var results = obj.result;  
  if (results.length > 0) {
    for (var r in results) {
      var user = results[r].user;
      Logger.log([user.id, user.first_name, user.last_name])
    }
  }

要理解这一点,如果解析对象(在a中),则所有用户都位于
result
中的一个数组中。每个用户的详细信息都在
user

中,您似乎从请求中获得了一个JSON响应,它是一个对象。因此,要获取
id
名字
姓氏
,您必须检查
响应

假设您的请求-响应是-

let response = {"ok":true, "result": [{"user":{"id":810784352,"is_bot":false,"first_name":"Rafael","last_name":"Vasconcelos"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}, {"user":{"id":1021450393,"is_bot":false,"first_name":"Mauro","last_name":"Ramires"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}, {"user":{"id":998081853,"is_bot":false,"first_name":"Filipe","last_name":"Lima"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}, {"user":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"status":"creator"}, {"user":{"id":307271095,"is_bot":false,"first_name":"Leandro","last_name":"Silva","username":"Leandro_CRF"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}]};
我不知道,但是如果它是一个JSON字符串,那么就解析它,这样程序就不会失败

if (typeof response === 'string') {
    response = JSON.parse(response);
}
这里我检查响应是否是字符串,然后将字符串解析为JSON

最后,我必须遍历响应,因为所需的信息存储在
结果
数组的
用户
对象中

response.result.map(result => {
    console.log(result.user.id, result.user.first_name, result.user.last_name);
});
我只是安慰这些价值观。你想做什么就做什么

let response={“ok”:true,“result”:[{“user”:{“id”:810784352,“is_bot”:false,“first_name”:“Rafael”,“last_name”:“Vasconcelos”},“status”:“administrator”,“can_be_edit”:false,“can_change_info”:true,“can_delete_messages”:true,“can_invite_users”:true,“can_restrict_members”:true,“can_promotion_members”:false,“user”:{“id”:1021450393,“is_bot”:false,“first_name”:“Mauro”,“last_name”:“Ramires”},“status”:“administrator”,“can_be编辑”:false,“can_change_info”:true,“can_delete_messages”:true,“can_restrict_members”:true,“can_pinu messages”:true,“can_promotion_members”:false,{“user”:{“id”:998081853,“is_bot”:false,“first_name”:“Filipe”,“last_name”:“Lima”},“状态”:“管理员”,“可编辑”:false,“可更改信息”:true,“可删除消息”:true,“可邀请用户”:true,“可限制成员”:true,“可锁定消息”:true,“可推广成员”:false},{“用户”:{“id”:962548471,“是机器人”:false,“第一名”:“特拉亚诺”,“姓氏”:“罗伯托”,“用户名”:“特拉亚诺罗博托”,“语言代码”:“en”}状态“:”创建者“},{”用户“:{”id“:307271095,“is_bot”:false,“first_name:”Leandro“,”last_name“:”Silva“,”用户名“:”Leandro_CRF“}”,状态“:”管理员“,”可以编辑“,”false,“can_change_info“:true,“can_delete_messages”:true,“can_invite_users”:true,“can_restrict_members”:true,“can_promotion_members”:false};
如果(响应类型=='string'){
response=JSON.parse(response);
}
response.result.map(结果=>{
log(`id:${result.user.id}`、`first_name:${result.user.first_name}`、`last_name:${result.user.last_name}`);

})
您似乎从请求中获得了一个JSON响应,它是一个对象。因此,要获取
id
名字
姓氏
您必须检查
响应

假设您的请求-响应是-

let response = {"ok":true, "result": [{"user":{"id":810784352,"is_bot":false,"first_name":"Rafael","last_name":"Vasconcelos"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}, {"user":{"id":1021450393,"is_bot":false,"first_name":"Mauro","last_name":"Ramires"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}, {"user":{"id":998081853,"is_bot":false,"first_name":"Filipe","last_name":"Lima"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}, {"user":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"status":"creator"}, {"user":{"id":307271095,"is_bot":false,"first_name":"Leandro","last_name":"Silva","username":"Leandro_CRF"},"status":"administrator","can_be_edited":false,"can_change_info":true,"can_delete_messages":true,"can_invite_users":true,"can_restrict_members":true,"can_pin_messages":true,"can_promote_members":false}]};
我不知道,但是如果它是一个JSON字符串,那么就解析它,这样程序就不会失败

if (typeof response === 'string') {
    response = JSON.parse(response);
}
这里我检查响应是否是字符串,然后将字符串解析为JSON

最后,我必须遍历响应,因为所需的信息存储在
结果
数组的
用户
对象中

response.result.map(result => {
    console.log(result.user.id, result.user.first_name, result.user.last_name);
});
我只是安慰这些价值观,你可以做任何你想做的事

let response={“ok”:true,“result”:[{“user”:{“id”:810784352,“is_bot”:false,“first_name”:“Rafael”,“last_name”:“Vasconcelos”},“status”:“administrator”,“can_be_edit”:false,“can_change_info”:true,“can_delete_messages”:true,“can_invite_users”:true,“can_restrict_members”:true,“can_promotion_members”:false,{“user”:“id”::1021450393,“is_bot”:false,“first_name”:“Mauro”,“last_name”:“Ramires”},“status”:“administrator”,“can_be_edit”:false,“can_change_info”:true,“can_delete_messages”:true,“can_restrict_members”:true,“can_pin_messages”:true,“can_promotion_members”:false,{“user”:“id”:998081853,“is_bot”:false,“Filipe”,“last_name”:“Lima”},“状态”:“管理员”,“可编辑”:false,“可更改信息”:true,“可删除消息”:true,“可邀请用户”:true,“可限制成员”:true,“可锁定消息”:true,“可推广成员”:false},{“用户”:{“id”:962548471,“是机器人”:false,“第一名”:“特拉亚诺”,“姓氏”:“罗伯托”,“用户名”:“特拉亚诺罗博托”,“语言代码”:“en”}状态“:”创建者“},{”用户“:{”id“:307271095,“is_bot”:false,“first_name:”Leandro“,”last_name“:”Silva“,”用户名“:”Leandro_CRF“}”,状态“:”管理员“,”可以编辑“,”false,“can_change_info“:true,“can_delete_messages”:true,“can_invite_users”:true,“can_restrict_members”:true,“can_promotion_members”:false};
如果(响应类型=='string'){
response=JSON.parse(response);
}
response.result.map(结果=>{
log(`id:${result.user.id}`、`first_name:${result.user.first_name}`、`last_name:${result.user.last_name}`);

})
map()
函数的帮助下,您可以找到
id
名字
姓氏