使用 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 响应的属性的主要内容,如果未能解决你的问题,请参考以下文章