使用 nodejs 'request' 读取 JSON 响应的属性

Posted

技术标签:

【中文标题】使用 nodejs \'request\' 读取 JSON 响应的属性【英文标题】:Reading property of JSON response with nodejs 'request'使用 nodejs 'request' 读取 JSON 响应的属性 【发布时间】:2017-06-19 23:41:03 【问题描述】:

所以我遇到了这个问题。我有一个 mocha 测试套件,用于测试 API 端点。 API 正在路径上发送 JSON 响应,如下所示:


  "error": false,
  "message": "post deleted"

在测试套件中,我发送了一个 DELETE 请求:

it('deletes post by given ID', function(done)
    request.delete(url: baseUrl + '/posts/delete/' + test_config.valid_post_id,
      function(error, response, body)
      expect(body.error).to.be.false;
      console.log(body.error);
    done();
  );
 );

此测试失败,并且 body.error 打印到控制台未定义。但是当我这样做时

console.log(body);

我得到了 JSON 对象。 我的问题是 - 我应该如何解析身体反应?

谢谢。

【问题讨论】:

body = JSON.parse(body) 然后就可以使用它的属性了。 【参考方案1】:

这里的body 将是一个序列化的 JSON 字符串,您必须对其进行解析才能访问其属性

试试这个

var parsedBody = JSON.parse(body)
console.log(parsedBody.error)  // => should give false

【讨论】:

【参考方案2】:

我在下面使用

var jsonobj=JSON.parse(body); console.log(jsonobj.scales.scale_id);

我的控制台中仍然出现 undefined

【讨论】:

你能打印出整个 JSON 并确保对象上存在 .scales.scale_id 属性吗?

以上是关于使用 nodejs 'request' 读取 JSON 响应的属性的主要内容,如果未能解决你的问题,请参考以下文章

node.js解析excel大文件的问题

节点 JS 查询 request.query 为空

nodejs 怎么从request获取上传文件

节点 JS:TypeError:无法读取未定义的属性“forEach”

nodejs 获取串口数据

Node.js-nodejs可否读取远程文件到本地 有没有像php file