javascript - NodeJS JSONStream 将数据作为一个长字符串返回

标签 javascript json node.js jsonstream

我有一个 300k 行的 JSON 文件,我正在尝试使用 JSONStream 在 Node 中解析该文件。从文档中,执行以下操作时,我期望将文件的前 10 行输出到控制台,但是我将整个文档作为字符串获取,每个行之间有 \n 字符行:

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 吗?我在这里做错了什么?

最佳答案

您必须在 jsonstream 对象上注册事件处理程序:

 var jsonStream = JSONStream.parse('*')
 stream.pipe(jsonStream)
 jsonStream.on('data', function(data) {
  // process data
 })

关于javascript - NodeJS JSONStream 将数据作为一个长字符串返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36857770/

相关文章:

用于将 .ini 文件转换为 .json 文件的 Javascript 库(客户端)

javascript - 如何在没有空回调的情况下测试多个调用

mysql - mysql的left join, inner join, union如何在redis中复制

javascript - jQuery 验证多个输入

javascript - 如果网页位置随后更改,则不会发送 XMLHttpRequest

javascript - 将函数应用于 MongoDB 集合中的所有对象的最有效方法是什么?

c++ - 使用 casablanca 解析 JSON 数组

javascript - 为什么我的 $.getJSON 可以工作但不执行 onsuccess 部分?

javascript - 获取 AngularJs 中 window.alert 中 Angular JS 表达式的值

javascript - Sails.js Controller 等待异步服务方法