首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSONPath和JSONStream解析json流

使用JSONPath和JSONStream解析json流
EN

Stack Overflow用户
提问于 2016-09-28 09:26:59
回答 1查看 402关注 0票数 2

我有一个这样的数据流:

代码语言:javascript
复制
{"foo": 1} {"bar": 2}

注意:这些映射之间没有逗号。

我想在node.js中读取这个流,这样就可以捕获两个映射,如上所示。我一直在尝试使用JSONStream来做到这一点,它擅长识别流中的离散JSON实体,但它会在某种程度上改变数据。所以我运行的代码是:

代码语言:javascript
复制
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);
}));

下面的输出是:

代码语言:javascript
复制
{ value: 1, key: 'foo' }
{ value: 2, key: 'bar' }

我希望它输出未更改的JSON映射:

代码语言:javascript
复制
{"foo": 1}
{"bar": 2}

有人知道我是怎么做到这一点的吗,是用JSONStream还是别的什么?

EN

回答 1

Stack Overflow用户

发布于 2016-09-28 10:42:07

看起来JSONStream比解决这个问题需要的更多,在幕后它使用了jsonparse,所以我的问题的解决方案是:

代码语言:javascript
复制
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);
    }
};
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39736627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档