![]() |
乐观的炒饭 · pixel及其他类原生系统离线跳过谷歌账号锁 ...· 11 月前 · |
![]() |
深沉的创口贴 · 俄国夺走外兴安岭,为啥没有进行开发?不仅仅是 ...· 11 月前 · |
![]() |
严肃的皮蛋 · 资讯丨大鹏《保你平安》《热烈》发布联名海报 ...· 1 年前 · |
![]() |
玩命的松树 · 傲娇奶爸休想逃豆丁cp_傲娇奶爸休想逃豆丁哪 ...· 1 年前 · |
![]() |
淡定的猕猴桃 · 如何评价演员麦斯·米科尔森 Mads ...· 1 年前 · |
我有一个非常长的对象数组,大小约为10万项,就在我将其写入文件之前,我将数据传递到JSON.stringify
我知道这个错误:
JSON.stringify(
RangeError: Invalid string length
如何成功地压缩一个非常大的json对象?
更新:
自从我最初写了这个问题以来,我对处理大量数据变得更加熟悉了,我更喜欢在这个过程中使用Apache。在Spark中,通常不使用大型JSON数组,而是使用包含长字符串JSON (每行一个对象)的流或文件。文件如下所示:
{"name":"kristian", "favoriteSong":"enter sandman"}
{"name":"joshua", "favoriteSong":"penny lane"}
{"name":"susan", "favoriteSong":"all about that bass"}
这很好,因为:
发布于 2015-11-12 16:42:00
如何成功地压缩一个非常大的json对象?
分成几部分?例如,将数组分解为较小的部分,在较小的部分上使用
JSON.stringify
,并将每个段追加到文件中(您必须执行一些
[
、
,
和
]
处理)。
发布于 2017-03-25 01:42:13
我发现 JSON.stringify 是本机 JSONStream 的可靠替代品,它可以很好地处理大型对象。例如:
var fileSystem = require( "fs" );
var JSONStream = require( "JSONStream" );
var records = [
{ id: 1, name: "Terminator" },
{ id: 2, name: "Predator" },
{ id: 3, name: "True Lies" },
{ id: 4, name: "Running Man" },
{ id: 5, name: "Twins" }
// .... hundreds of thousands of records ....
var transformStream = JSONStream.stringify();
var outputStream = fileSystem.createWriteStream( __dirname + "/data.json" );
transformStream.pipe( outputStream );
records.forEach( transformStream.write );
transformStream.end();
![]() |
深沉的创口贴 · 俄国夺走外兴安岭,为啥没有进行开发?不仅仅是为了保护! 11 月前 |