Tag: yajl

什么是生成json的哈希结构?

下面是我传递给javascript的最终json示例。 我将使用( yajl )ruby库从哈希创建这个json。 问题是产生json的ruby哈希应该是什么样的? var data = [{ data: “basics”, attr: {}, children: [ {data: “login”, attr: {run: “run”}, children: [ {data: “login”, attr: {}} ] } , {data: “Academic Year”, attr: {run: “run”}, children: [ {data: “login”, attr: {}}, {data: “Academic Year”, attr: {filter: “mini”, SOF: “yes”}} ] } ] }];

如何在Ruby中处理巨大的JSON文件作为流,而不占用所有内存?

我在Ruby中处理一个巨大的JSON文件时遇到了麻烦。 我正在寻找的是一种逐个处理它的方法,而不会在内存中保留太多数据。 我认为yajl-ruby gem会做这项工作,但它会消耗我所有的记忆。 我也看过Yajl :: FFI和JSON:Streamgem,但有明确说明: 对于较大的文档,我们可以使用IO对象将其流式传输到解析器中。 我们仍然需要解析对象的空间,但文档本身永远不会完全读入内存。 这是我对Yajl的所作所为: file_stream = File.open(file, “r”) json = Yajl::Parser.parse(file_stream) json.each do |entry| entry.do_something end file_stream.close 内存使用量持续增加,直到进程被终止。 我不明白为什么Yajl会在内存中保留已处理的条目。 我可以以某种方式释放它们,还是我误解了Yajl解析器的function? 如果无法使用Yajl完成:有没有办法在Ruby中通过任何库?