我需要能够处理大型 JSON 文件,在文件中迭代/流式传输时从可反序列化的子字符串实例化对象。
例如:
我没有使用 JSON 完成此操作(我希望有人能为您提供交钥匙解决方案),而是使用 XML 完成此操作,这里是一种处理方法。
它基本上是一个借助流解析器的简单 Map->Reduce 过程。
Map (your advanceTo
)
使用流解析器,例如JSON 简单 http://code.google.com/p/json-simple/wiki/DecodingExamples#Example_5_-_Stoppable_SAX-like_content_handler(未测试)。当在回调中匹配您的“路径”时,通过将其写入流(文件备份或内存中,取决于您的数据)来收集下面的任何内容。那将是你的foo
你的例子中的数组。如果您的映射器足够复杂,您可能希望在映射步骤中收集多个路径。
Reduce (your stream[Data]
)
由于您上面收集的流看起来非常小,因此您可能不需要再次映射/拆分它们,并且可以直接在内存中将它们解析为 JSON 对象/数组并操作它们(转换、重新组合等)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)