我有一个非常长的对象数组,大小约为100,000个项目,在我将其写入文件之前,我将数据传递给
JSON.stringify
我收到此错误:
JSON.stringify( ^ RangeError: Invalid string length
如何成功地对一个非常大的json对象进行字符串化?
更新:
因为我最初写过这个问题,所以我对处理大量数据变得更加熟悉了,我更喜欢使用Apache Spark来完成这个过程.在Spark中,习惯上不使用大型JSON数组,而是使用包含长串JSON的流或文件,每行一个对象.文件看起来像这样:
{"name":"kristian","favoriteSong":"enter sandman"} {"name":"joshua","favoriteSong":"penny lane"} {"name":"susan","favoriteSong":"all about that bass"}
这很好,因为:
>你可以任意处理TB级大的文件,就像轻松做一些无逻辑文件分割并将其转换成一千个较小的文件一样,逻辑是简单地在某个换行符号N处打破文件.
>这是更好的你不会有由于未关闭的JSON数组导致手上有损坏的数据文件的潜在可怕问题.
>文件中的大型JSON数组往往没有换行符,因此在VIM或其他编辑器中打开大文件是很痛苦的,因为它试图将整个内容加载到内存中,而不是带有换行符的文件,其中可以轻松地将前10行左右加载到屏幕上而不会出现问题.
How can I stringify a very large json object successfully?
在部分?例如,将数组分成更小的部分,在较小的部分上使用JSON.stringify,并将每个段追加到文件中(您必须进行一些[,和]处理).