如何使用JSONStream来字符串化一个大对象



我想字符串化一个大对象(将其写入文件),但我正在运行v8的字符串长度限制。因此,我认为我要么需要找到一种将字符串写入ArrayBuffer的方法,要么需要以块的形式创建字符串。

看起来https://github.com/dominictarr/JSONStream可以做后者,但我不明白如何使用stringify(),因为文档中只解释了.parse()的用法。

这里有一种使用JSONStream的方法,但创建完美的测试对象并不容易,所以请尝试一下:

var JSONStream = require('JSONStream');
var es = require('event-stream');
var fs = require('fs');
var obj = {};
for (var i = 0; i < 2000; i++) {
    obj['prop' + i] = 'value' + i;
}
var out = fs.createWriteStream(__dirname + '/out.json');
es.readable(function (count, next) {
    for (var key in obj) {
        this.emit('data', [key, obj[key]]);
    }
    this.emit('end');
    next();
}).pipe(JSONStream.stringifyObject()).pipe(out);

相关内容

  • 没有找到相关文章

最新更新