我正在尝试jsonlint
在 40MB JSON 文件上运行,但它会以退出状态停止执行5
,并显示以下错误消息:
FATAL ERROR: JS Allocation Failed - process out of memory
有谁知道我怎样才能得到这个 JSON 的漂亮打印?我想知道它是否与节点的--max-old-space-size
参数有关,但我也不确定如何将它传递给已安装的可执行文件。
如果有另一种方法我可以用人类可读的缩进来渲染它,我也会很感激这些建议。
jsonlint 基于 Jison,这是一个解析器生成器。写起来很简单,但是速度极慢。所以除非你真的需要它的一些功能(比如排序对象键),否则不要使用它。
如果您想漂亮地打印 JSON,请使用内置 -JSON.stringify(object, '\t')
或jju模块 -require('jju').stringify(object, {mode: 'json'})
以获得更紧凑但仍然是人类可读的表示。
40MB 将产生大约 200-300MB 的空间,这绝对不是那么大。