如果初始属性是变量,如何访问 JSON 对象的属性的属性?
Posted
技术标签:
【中文标题】如果初始属性是变量,如何访问 JSON 对象的属性的属性?【英文标题】:How to access property of a property of a JSON object if the initial property is a variable? 【发布时间】:2021-05-22 10:15:36 【问题描述】:我正在制作一个不和谐的机器人,并成功制作了一个系统,它将用户的变量以这种格式存储在 JSON 文件中:
"801479782613123123":
"status": true
,
"725581416720629863":
"status": true
我当前的问题是,当我将变量作为初始属性传入时,我无法检查此“状态”属性是真还是假。这是我的代码:
let statusPath = './commands/afkstatus.json';
let statusRead = fs.readFileSync(statusPath);
let statusFile = JSON.parse(statusRead); //Ready for use
let userID = message.author.id
if (message.mentions.users.first())
let ping = message.mentions.users.first();
let status = statusFile[userID.status];
if (statusFile[userID.status])
message.channel.send(`Message`);
当我运行代码时,没有错误消息,消息根本没有被发送。
【问题讨论】:
message.author.id
是字符串还是数字类型?如果它是数字类型,它不会起作用,因为801479782613123123
大于MAX_SAFE_INTEGER。当您使用该数字作为键时,它会将其转换为字符串,String(801479782613123123)
是 "801479782613123100"
【参考方案1】:
改用let status = statusFile[userID].status
。
【讨论】:
以上是关于如果初始属性是变量,如何访问 JSON 对象的属性的属性?的主要内容,如果未能解决你的问题,请参考以下文章