2016-10-29 17 views
2

Jira APIを使用して単一のチケットでデータを取得しています。サーバーへのhttp GETリクエストを正常にセットアップしましたが、コンソールにデータを表示できますが、理想的にはJSON形式のデータから特定のプロパティを取得する必要があります。Nodejがhttpリクエストチャンクから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のthisフォーマットです。 resの最初のコンソールログには、チャンクのすべてのデータが正常に表示されます。 もう一つは次のとおりです。

endSTATUS: undefined 

答えて

2

あなたは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); 
}); 
+0

グッドが働いていて、チャンクのドキュメントに何も見つかりませんでした。 – Dom

+0

私はいつもハッピーコーディングが起こります! – arbybruce

4

データストリームの終了後にボディを取得してください。このように:

 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); 
     }); 
+0

これを共有していただきありがとうございます –

関連する問題