相关疑难解决方法(0)

NodeJS JSON.stringify非常长的对象数组错误"无效的字符串长度"

我有一个非常长的对象数组,大小约为100,000个项目,在我将其写入文件之前,我将数据传递给JSON.stringify

我收到此错误:

JSON.stringify(
     ^
RangeError: Invalid string length
Run Code Online (Sandbox Code Playgroud)

如何成功地对一个非常大的json对象进行字符串化?

更新:

因为我最初写过这个问题,所以我对处理大量数据变得更加熟悉了,我更喜欢使用Apache Spark来完成这个过程.在Spark中,习惯上不使用大型JSON数组,而是使用包含长串JSON的流或文件,每行一个对象.文件看起来像这样:

{"name":"kristian", "favoriteSong":"enter sandman"}
{"name":"joshua", "favoriteSong":"penny lane"}
{"name":"susan", "favoriteSong":"all about that bass"}
Run Code Online (Sandbox Code Playgroud)

这很好,因为:

  • 你可以任意处理TB级大的文件,就像轻松做一些无逻辑文件分割并将其转换成一千个较小的文件一样,逻辑就是简单地在某个换行符号N处打破文件.
  • 这是更好的你不会有由于未关闭的JSON数组导致手上有损坏的数据文件的潜在可怕问题.
  • 文件中的大型JSON数组往往没有换行符,因此在VIM或其他编辑器中打开大文件是一件痛苦的事情,因为它试图将整个内容加载到内存中,而不是带有换行符的文件,它可以在轻松地将前10行左右加载到屏幕上而不会出现问题.

json node.js

5
推荐指数
2
解决办法
6707
查看次数

标签 统计

json ×1

node.js ×1