如果初始属性是变量,如何访问 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 对象的属性的属性?的主要内容,如果未能解决你的问题,请参考以下文章

无法访问 JSON 对象属性 [重复]

类的属性

python属性重新赋值叫啥

访问JSON对象值方法 for in 遍历属性和属性值

php static静态属性和静态方法

php static静态属性和静态方法