【问题标题】: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) 然后就可以使用它的属性了。

标签: javascript json node.js parsing


【解决方案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 属性吗?
    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多