У меня есть файл JSON длиной 300 тыс., Который я пытаюсь проанализировать в узле с помощью JSONStream. Из документов, при выполнении следующего, я ожидаю, первые 10 строк файла, который будет выводиться на консоль, однако я получаю весь документ в виде строки, с \n
символами между каждой строкой:NodeJS JSONStream возвращает данные как одну длинную строку
var fs = require('fs');
var JSONStream = require('JSONStream');
var i = 0;
var stream = fs.createReadStream('test.json', {encoding: 'utf8'})
stream.pipe(JSONStream.parse('*'))
stream.on('data', function(data) {
if(i < 10){
console.log(i, data)
}
i++;
});
Не должно JSONStream.parse("*")
быть ... разобрать JSON? Что я здесь делаю неправильно?
как структурированная файл JS? возможно, вы должны «адресовать» вспомогательные объекты в функции синтаксического анализа (а не адресовать корень). – lipp
Он структурирован как JSON, не уверен, в какой комнате есть вариации. '[{'key.one': 'value' ...}, ... {'key.one': 'value' ...}]'. Каждый объект находится на новой строке. – Jascination
Возможно, вы должны использовать дочерний оператор '[]' для получения каждого элемента массива (goessner.net/articles/JsonPath). «*», Вероятно, дает вам корневой объект/массив. – lipp