【问题标题】:Nodejs read JSON data from a http request chunkNodejs 从 http 请求块中读取 JSON 数据
【发布时间】:2017-03-12 06:50:42
【问题描述】:

我正在使用 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 的this 格式供参考。 res 中的第一个控制台日志成功显示了块中的所有数据。 第二个是:

endSTATUS: undefined

【问题讨论】:

    标签: json node.js rest


    【解决方案1】:

    尝试在数据流完成后获取正文。像这样:

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

    【讨论】:

    • 2021年还能用。谢谢分享! .on('end'... )
    【解决方案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); 
    });
    

    【讨论】:

    • 效果很好,在有关块的文档中找不到任何内容,谢谢!
    • 一直发生在我身上,快乐的编码!
    猜你喜欢
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2020-12-11
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多