Ответ 1
Предупреждение. Поскольку этот ответ был написан, автор библиотеки JSONStream удалил функцию испускания корневого события., по-видимому, для исправления утечки памяти. Будущие пользователи этой библиотеки, вы можете использовать версии 0.x.x, если вам нужна функция испускания root.
Ниже представлен немодифицированный оригинальный ответ:
Из readme:
JSONStream.parse(путь)
Событие
path
должен быть массив имен свойств, RegExps, booleans и/или функций. Любой объект, который соответствует пути, будет испускаться как'data'
.A
'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
});