【问题标题】:Applying variable to json path将变量应用于 json 路径
【发布时间】:2020-11-12 06:50:28
【问题描述】:

我正在创建一个 discord.js 机器人,它需要读取一些 json 但我偶然发现了一个小问题。在我的代码中,我有一个获取冠军名称的函数,然后将其应用于链接 ex。如果用户输入 !champion Yasuo,它将搜索 Yasuo.json。但是当我请求 JSON 并阅读它时,我想得到一个特定的关键,冠军的传说。但是路径看起来像这样。数据.亚索.lore;因为在我的代码中,我有一个获取冠军名称的变量,我也想将它应用于关键路径,但是当我执行它时,它会给出一个错误,即由于路径是 res.data,所以找不到路径。冠军名字.lore;此类密钥不存在。

我能用它做什么?如何将变量应用于键路径?

代码:

    function getChampion(championName){
         var url = `http://ddragon.leagueoflegends.com/cdn/10.14.1/data/en_US/champion/${championName}.json`
         request(url, (error, head, body)=>{
             var res = JSON.parse(body);
             var championDesc = res.data.championName.lore; //I want this to be for ex. res.data.Yasuo.lore; I want it as a variable.
             console.log(championDesc);
         })
    }
        

【问题讨论】:

  • 当你想使用变量时,你必须使用括号表示法,例如data[championName]

标签: javascript node.js json discord.js


【解决方案1】:

您需要将变量放在括号内 ([]) 以正确访问 JSON 对象中的值。这是一个如何使用您提供的代码的示例:

function getChampion(championName){
         var url = `http://ddragon.leagueoflegends.com/cdn/10.14.1/data/en_US/champion/${championName}.json`
         request(url, (error, head, body)=>{
             var res = JSON.parse(body);
             var championDesc = res.data[championName].lore; //I want this to be for ex. res.data.Yasuo.lore; I want it as a variable.
             console.log(championDesc);
         })
    }

【讨论】:

  • 非常感谢,我不敢相信我忘记了这么基本的东西,我想当你尝试制作比控制台应用程序更大的东西时会发生这种情况哈哈。
  • 没问题!无时无刻不在发生
猜你喜欢
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多