除了aeson还有什么?

How else but aeson?

aeson 似乎采用了一种头脑简单的方法来解析 JSON:它将顶级 JSON 值(对象或数组)解析为它自己的固定表示然后提供工具来帮助用户将该表示形式转换为他们自己的表示形式。当 JSON 对象和数组很小时,这种方法非常有效。当它们非常大时,事情就开始分崩离析,因为在 JSON 值被完全读取和解析之前,用户代码无法执行任何操作。这似乎特别不幸,因为 JSON 似乎是为递归下降解析器设计的——允许用户代码介入并说明如何解析每个片段似乎应该相当简单。 aeson 和早期的 json 以这种方式工作是否有深层原因,或者我应该尝试创建一个新库以更灵活地 JSON 解析?

json-stream is a stream based parser. This is a bit out of date (2015), but they took the benchmarks from aeson and compared the two libraries: aeson and json-stream performance comparison。有一种情况是 json-streamaeson 差很多。

如果您只是想要更快的 aeson(不是流式传输),haskell-sajson 看起来很有趣。它在 Haskell 和 returns Value 中包装了一个高性能的 C++ 库,来自 aeson.