注意,fromJson返回一个结果--,它可以是错误字符串,也可以是成功的。
如果我在流上使用fromJson (例如,来自http-streams的响应使用表达式parseFromStream (fromJSON <$> json') ) (链接),结果上的模式匹配是否会迫使整个流首先完全缓冲,以便解析来确定成功或失败,而不管进一步消耗响应是否足够懒惰(即不可能使用恒定空间parsing+consumption )?或者,--解析和结果都能被懒散地消耗--也就是说,可以使用恒空间parsing+consumption )?docs "parseFromStream只消耗满足分析器所需的输入“,但尚不清楚”满足解析器“如何与结果上的模式匹配相关联,从而产生成功或错误。
(P.S.或者,它不可能,是否有一种不同的方式允许常数空间解析w/消费?)
发布于 2015-03-20 06:05:24
不幸的是,在一般情况下没有办法做到这一点。编写xml-导管时,我采用的方法是让解析器解析单个事件,比如“元素开始”和“元素结束”。过去,我曾多次考虑使用类似的Haskell库来处理JSON数据。
实际上,有这样的东西可以作为C库绑定:雅吉。
发布于 2015-04-17 13:18:27
我刚刚大致完成了一个执行增量解析的json解析器。结果和输入都可以懒散地消耗,只要有可能,它就是恒定的空间。看看这是否对你有帮助:https://github.com/ondrap/json-stream
https://stackoverflow.com/questions/29159486
复制相似问题