如何使用JavaScript读取/访问多维对象
我正在开发一个电报机器人,需要确定谁是组中的管理员 我们使用JavaScript开发了一个GoogleWeb应用程序,并调用以下方法 getChatAdministrators 使用此方法可以获取聊天中的管理员列表。成功后,返回包含所有聊天管理员信息的ChatMember对象数组 此方法将返回以下内容: [20-03-1417:14:23:403 AEDT]如何使用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
{"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
,名字
和姓氏