5

ディスクに書き込めるように、1 GB オブジェクトを json.stringify しようとしています。私は得るFATAL ERROR: JS Allocation failed - process out of memory

文字列化を成功させるにはどうすればよいですか?

4

2 に答える 2

5

手動で少しずつ文字列化できます。yが のキーであるx場合、JSON.stringify(y) + ":" + JSON.stringify(x[y])1 つのセグメントが得られます。

を使用するfs.appendFileSyncと、たとえば次のように使用できます。

var output = "out.json";
fs.writeFileSync(output, "{");
var first = true;
for(var y in x) {
    if(x.hasOwnProperty(y)) {
        if(first) first = false;
        else fs.appendFileSync(output, ",");
        fs.appendFileSync(output, JSON.stringify(y) + ":" + JSON.stringify(x[y]))
    }
} 
fs.appendFileSync(output, "}");

書き込みストリームを使用することもできます

于 2013-07-21T04:51:42.740 に答える