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

时间:2017-02-02 18:48:39

标签: javascript json node.js parsing

所以我遇到了这个问题。我有一个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对象。 我的问题是 - 我应该如何解析身体反应?

谢谢。

2 个答案:

答案 0 :(得分:2)

此处body将是序列化的JSON字符串,您必须解析它才能访问其属性

试试这个

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

答案 1 :(得分:0)

我在下面使用

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

在我的控制台中仍然未定义