使用JSONPath和JSONStreamparsingjsonstream

我有这样的数据stream:

{"foo": 1} {"bar": 2} 

注意:这些地图之间没有逗号。

我想在node.js中读取这个stream,以便我可以捕获这两个映射,如上所示。 我一直在试图用JSONStream来做到这一点,JSONStream很好地识别stream中的离散JSON实体,但有些变化的数据。 所以我运行的代码是:

 var jsonStream = require('JSONStream'); var es = require('event-stream'); var parser = jsonStream.parse('$*'); process.stdin.pipe(parser) .pipe(es.mapSync(function (data) { console.log(data); })); 

而这个输出:

 { value: 1, key: 'foo' } { value: 2, key: 'bar' } 

我希望它输出不变的JSON映射:

 {"foo": 1} {"bar": 2} 

任何人都知道我可以用JSONStream或其他东西来实现这一点吗?

看起来像JSONStream是不是需要解决这个问题,它使用jsonparse的底层,所以我的问题的解决scheme是:

 var Parser = require('jsonparse'); var parser = new Parser(); process.stdin.on("readable", function () { var chunk = process.stdin.read(); if (chunk) { parser.write(chunk); } }); parser.onValue = function (v) { if (this.stack.length === 0) { console.log(v); } };