2016-10-29 1 views
2

Ich verwende Jira-APIs, um Daten über einzelne Tickets zu erhalten. Ich habe erfolgreich eine HTTP GET Anfrage an den Server gestellt und kann die Daten auf der Konsole anzeigen, aber ich muss idealerweise bestimmte Eigenschaften von den Daten bekommen, die im JSON Format sind.Nodejs lesen JSON-Daten von einem HTTP-Request-Chunk

Wenn ich versuche, die Eigenschaften zu lesen, bekomme ich nur undefined.

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

Die Daten sind in this Format von jira API Referenz. Das erste Konsolenprotokoll in der Res zeigt erfolgreich alle Daten aus dem Chunk. Das zweite ist:

endSTATUS: undefined 

Antwort

2

sicher, dass Sie die Antwortdaten als JSON parsen. Ich denke, Sie möchten vielleicht etwas wie var data = JSON.parse(chunk);, und verweisen Sie die Chunk-Daten als data.value.

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

Großartig, dass gearbeitet hat, konnte nichts über die Dokumentation auf Brocken finden, danke! – Dom

+0

Passiert mir die ganze Zeit, Happy Coding! – arbybruce

4

Versuchen Sie, den Körper nach dem Datenstrom fertig zu bekommen. Gefällt mir:

 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

danke für das Teilen –

Verwandte Themen