【问题标题】:Put a string from JSON into var将 JSON 中的字符串放入 var
【发布时间】:2021-02-05 16:12:55
【问题描述】:

我是一名 Linux 系统管理员,几乎没有编码经验。我被要求在 nodejs 中开发一个演示 RCS 聊天机器人,它会回显它收到的任何消息。我很惊讶我什至能做到这一点,而且我只有最后一件事要做。我真的很喜欢这个项目,我希望我可以为最后一块寻求帮助。我正在尝试创建一个变量OD 并输入access_token 的值

我有这部分代码:

request5(options5, function (error, responseOD) {
              if (error) throw new Error(error);
              console.log(responseOD.body); // <--------------------------- Third line
              var OD = responseOD.body.access_token;
              console.log(OD); // <------------------------------- Fifth line
              var ODtoken = "Bearer ".concat(OD);
              });

第三行(我在代码 sn-p 中写了“第三行”)返回:

      {
        "token_type": "Bearer",
            "access_token": "cbYAmA9iElLteoAQrj9GsDT2VrnD",
            "expires_in": "7776000"
      }

但由于某种原因,第五行(console.log(OD);,我在代码 sn-p 中写了“第五行”)返回:

undefined

有谁知道为什么OD 变量不会从 JSON 响应中收到 access_token

非常感谢!

【问题讨论】:

  • 试试console.log(typeof responseOD.body) - 如果是字符串,你需要使用JSON.parse
  • 我刚刚做了console.log(typeof responseOD.body),它返回了字符串。你知道如何在这个语法中使用JSON.parse来提取access_token吗?
  • 像这样:JSON.parse(responseOD.body).access_token
  • 是的!非常感谢!!!

标签: javascript node.js json var


【解决方案1】:

您只想使用JSON.parse(string) 函数将该字符串主体解析为Javascript 对象。最后你的代码应该是这样的:

request5(options5, function (error, responseOD) {
    if (error) throw new Error(error);
    var bodyAsObject = JSON.parse(responseOD.body);
    var OD = bodyAsObject.access_token;
    var ODtoken = "Bearer ".concat(OD);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2018-07-20
    • 2020-02-08
    • 1970-01-01
    • 2020-09-03
    相关资源
    最近更新 更多