【发布时间】:2018-03-11 13:58:03
【问题描述】:
我认为这对我来说有点高级,但我的目标是从 http API 获取原始 json,从中解析第一个列表,做任何我需要做的事情,然后继续下一个列表, 等等。我希望这一次只允许将一个列表加载到内存中(每个列表都非常小,但 json 中有很多列表)。 我用 Aeson 试了一下,它吃掉了所有的 ram,没完没了地处理了好几个小时,最后我不得不杀死它。
如果我理解正确,httpSink 应该是要走的路,也许用 json-stream 来做实际的解析。我阅读了有关导管的教程,但我显然没有正确理解它,因为我无法做到这一点。
我知道如何使用 parseByteString 以我需要的方式解码 ByteString(至少我的测试似乎有效),但我想不出一种方法来使用 parseByteString 作为 httpSink 的第二个参数的接收器。 我是否遗漏了一些明显的东西,还是我误解了管道的工作方式?
谢谢
【问题讨论】:
-
你的问题不是很清楚。
-
正如我所说,我正在寻找一种方法来使用来自 json-stream 的 parseByteString 作为 httpSink 的接收器。
标签: haskell conduit jsonstream