获得,操纵和获取的最佳方式在Node JS中编写(响应)巨大的JSON?

时间:2015-01-08 15:16:12

标签: javascript json node.js

我的预期任务:获取大量数据(1 GB和更大的大小)json字符串,操作(执行一些格式化,解析json,重构json数据)并将新格式化的json字符串写为响应。 处理这种情况的更好方法是什么?

在某些博客中,我发现在流中存储大量数据是处理大量数据的有效方法,但如何操作流数据?

我遇到的异常/错误:致命错误:CALL_AND_RETRY_2分配失败 - 处理内存不足 中止(核心倾销)

输入JSON:

"docs": [ { "note_text": ["7657011|20MAR08|somehugedata|||7657012|20MAR09|somehugedata"], id:"c123" }, { "note_text": ["7657001|23MAR08|somehugedata|||7657002|21MAR08|somehugedata"], id:"c124" } ]

新格式化的JSON:

"docs": [ { id:"c123", note_text : "somehugedata", date : "20MAR08" note_id : "7657011" }, { id:"c123", note_text : "somehugedata", date : "20MAR09" note_id : "7657012" }, { id:"c124", note_text : "somehugedata", date : "23MAR08" note_id : "7657001" }, { id:"c124", note_text : "somehugedata", date : "21MAR08" note_id : "7657002" } ]

1 个答案:

答案 0 :(得分:1)

看看JSONStream。有了它,你不必将整个巨大的JSON blob加载到内存中。您将逐个处理源JSON中的对象,在JSONStream.parse()中为它们指定正确的选择模式。