use*_*624 20 json node.js jsonlines
我有一个大的json文件,它是Newline-delimited JSON,其中多个标准JSON对象由额外的换行符分隔,例如
{'name':'1','age':5}
{'name':'2','age':3}
{'name':'3','age':6}
Run Code Online (Sandbox Code Playgroud)
我现在在node.js中使用JSONStream来解析一个大的json文件,我使用JSONStream的原因是因为它基于流.
但是,示例中的两个解析语法都无法帮助我在每行中使用分隔的JSON解析此json文件
var parser = JSONStream.parse(**['rows', true]**);
var parser = JSONStream.parse([**/./**]);
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我
fra*_*gio 17
警告:由于编写了这个答案,JSONStream库的作者删除了emit root事件功能,显然是为了修复内存泄漏.如果您需要emit根功能,可以使用0.xx版本.
以下是未经修改的原始答案:
从自述文件:
JSONStream.parse(路径)
path应该是属性名称,RegExps,布尔值和/或函数的数组.匹配路径的任何对象都将作为'data'.
'root'收到所有数据后会发出一个事件.该'root'事件传递根对象和匹配对象的计数.
在您的情况下,由于您希望返回JSON对象而不是特定属性,因此您将使用该'root'事件,而无需指定路径.
您的代码可能如下所示:
var fs = require('fs'),
JSONStream = require('JSONStream');
var stream = fs.createReadStream('data.json', {encoding: 'utf8'}),
parser = JSONStream.parse();
stream.pipe(parser);
parser.on('root', function (obj) {
console.log(obj); // whatever you will do with each JSON object
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13527 次 |
| 最近记录: |