JSON流未执行

时间:2019-05-08 07:15:59

标签: arrays node.js json

我正在处理大型JOSN数据,并使用JSON Stream npm模块。我遵循了这个example

我已安装并使用

  

const JSONStream = require('JSONStream');
  const es = require('event-stream');

在下面的代码中,我使用了一些逻辑,但无法获得流式传输的完整JSON。

var options = {
    url: 'https://zzzzzz',
    verify: 'False',
    headers: {
        'Authorization': 'zzzz',
        'Accept': 'application/json',
        'User-Agent': 'zzzzz'
    }
};

request(options, function(err, response, body) {
    console.log("JSON Data is" + body);  // here I am getting only a small chunk of json data

    var stream = JSONStream.parse('*');
    response.pipe(stream);              // body.pipe throws an error - body.pipe is not a function at Request._callback 
    stream.on('data', console.log.bind(console, 'an item')); // nothing is shown in console
    return body; // how can we return the streamed complete json data?
});

1 个答案:

答案 0 :(得分:0)

好,我做了一些更改,现在可以正常工作了,

request({url:'ssss',verify:'False',headers:{'Authorization':'Bearer zzzz','Accept':'application/json','User-Agent':'zzz'}})
  .pipe(JSONStream.parse('items..metadata.labels.app'))
  .pipe(es.mapSync(function (data) {
    console.log("Stringify "+ JSON.stringify(data));
    console.log("Parse and Stringify "+ JSON.parse(JSON.stringify(data)));
  })) ;

由于我正在使用recursive descent operator,因此收到多条console.log消息。