我正在处理大型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?
});
答案 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消息。