Nodejs从http请求块读取JSON数据

我正在使用Jira API来获取单个票据上的数据。 我已经成功地设置一个HTTP GET请求到服务器,并可以显示数据到控制台,但我理想的是需要从JSON格式的数据中获得某些属性。

当我尝试阅读属性,我只是得到了未定义。

var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); // This displays the JSON console.log('endSTATUS: ' + chunk.id); // This shows up undefined }); 

数据是以jira API的格式作为参考。 第一个控制台loginres成功显示块中的所有数据。 第二个是:

 endSTATUS: undefined 

确保您将响应数据parsing为JSON。 我想你可能需要像var data = JSON.parse(chunk); ,并将块数据作为data.value

 res.on('data', function (chunk) { var data = JSON.parse(chunk); console.log('BODY: ' + data); console.log('endSTATUS: ' + data.id); }); 

尝试在数据stream完成后获取主体。 喜欢这个:

  var body = ''; response.on('data', function(d) { body += d; }); response.on('end', function() { // Data reception is done, do whatever with it! var parsed = JSON.parse(body); console.log('endSTATUS: ' + parsed.id); });