【问题标题】:How to read json response from node js server?如何从节点 js 服务器读取 json 响应?
【发布时间】:2016-12-26 15:59:11
【问题描述】:

我有一个 NodeJS REST API。在那个 API 中,我必须调用另一个 3rd 方 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 输出。像下面这样。

(不带 \ 符号)

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

res.json(body.Response);

但它是空的。而且我还需要将所有这些值转换为变量。我该怎么做?

【问题讨论】:

标签: javascript json node.js rest


【解决方案1】:

您的第三方 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);

【讨论】:

  • 是的,现在它作为 JSON 工作。但我仍然不能这样使用。 "res.json(JSON.parse(body.Response));"
  • 这是我得到的错误-> SyntaxError: Unexpected token u
  • var json = JSON.parse(body); res.json(json .Response);
猜你喜欢
  • 2016-05-30
  • 1970-01-01
  • 2012-12-07
  • 2012-04-03
  • 2021-09-15
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多