javascript - 如何从 Node.js 服务器读取 json 响应?

标签 javascript json node.js rest

我有一个 NodeJS REST API。在该 API 中,我必须调用另一个第 3 方 API 来获取一些数据。它为我们提供了 JSON 格式的数据。这就是我将数据响应设置为 REST url 响应的方式。

request('http://dev.demo.com/api/v1/wow/getFreeviewLoginAndCallAPI/123', function (error, response, body) {
if (!error && response.statusCode == 200) {
    console.log(body);
    res.json(body);
}

});

然后我得到了这样的回复。

"{\"Response\":{\"@attributes\":{\"Package\":\"MONTHLY\",\"Surname\":\"Taylor\",\"CSN\":\"104801\",\"Email\":\"adam.taylor@gmail.com\",\"MiscInformation\":\"\",\"Message\":\"CUSTOMER_ACTIVE\"}},\"Submission\":{\"@attributes\":{\"SubmitterRef\":\"0778798654\",\"Submitter\":\"demoName\"}}}"

但是当我在浏览器中使用该第 3 方 URL 时,我会得到干净且漂亮的 JSON 输出。就像下面这样。

(不带\符号)

没有其他“\”符号,而且很干净。我需要做的是访问此响应的一些值。在 Node js中。我需要发送如下回复。

res.json(body.Response);

但它是空的。我还需要将所有这些值传递给变量。我怎样才能做到这一点?

最佳答案

来自第三方 API 的响应是字符串,您可能需要在发送到客户端之前进行解析。

request('http://dev.demo.com/api/v1/wow/getFreeviewLoginAndCallAPI/123', function (error, response, body) {
if (!error && response.statusCode == 200) {        
    res.json( JSON.parse(body));
}});

不能直接使用body.Response,因为它的字符串不是对象,首先解析它然后发送给客户端,如

var json = JSON.parse(body); 
res.json(json.Response);

关于javascript - 如何从 Node.js 服务器读取 json 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333543/

相关文章:

javascript - 需要根路径中的模块

node.js - 使用 SEQUELIZE Nodejs 从表名中删除双引号

javascript - 如何将 .json 配置导入 environment.ts 并使用 Angular 使用 api?

php - CSS - 如何在两个元素之间匹配类(一个动态的和一个静态的)

javascript - 为什么 JSON.stringify 给出 JSON undefined 错误?

sql - 如何从 JSONB 列中提取数据

javascript - 异步函数抛出错误: socket hang up

node.js - 将 websocket 与 Elastic beanstalk、nginx 和 node.js 结合使用时出现问题

javascript - 使用 nvd3-ng2 丢失网格线

json - 将大型 JSON 数据从 android 发送到 php 服务器我可以压缩吗?