哪个Haskell包用于JSON

时间:2010-09-07 23:44:17

标签: json haskell hackage

Hackage for Haskell上有大约十几个JSON包。我怎么知道应该使用哪个包?我如何得到一个流行的观点?

是否有关于哪个软件包使用最多,下载最多等的统计信息?

3 个答案:

答案 0 :(得分:29)

其他答案已经过时我认为,今天它被广泛接受我认为最好的JSON库和Haskell中的事实标准是Aeson:

http://hackage.haskell.org/package/aeson

维护者是Brian O'Sullivan,因其对Haskell及其以绩效为导向的工作的深入了解而闻名;毫无疑问,这是正确的选择。

此外,Aeson提供了一个非常好的API,check this example

另外,我不知道过去,但现在Yesod也使用了Aeson:

http://hackage.haskell.org/packages/archive/yesod-json/1.1.0/doc/html/Yesod-Json.html “使用aeson包”

http://www.yesodweb.com/book/json-web-service “我们将使用aeson进行JSON解析和渲染”

答案 1 :(得分:7)

选择他人的依赖

如果您使用其中一个新的Haskell Web框架,您可以考虑使用与框架使用的相同的json库。从反向依赖性看,配对似乎是:

  • Yesod:JSONb
  • Happstack:RJson
  • On-a-Horse:???

许多软件包使用json

按功能选择

您也可以根据其功能选择使用包。

如果您是ByteStrings的用户,请考虑使用JSONb。它使用AttoParsec而不是通常的Parsec,所以它可能更快(但首先测量它)。

RJson正在做一些聪明的技巧to serialize nested records automatically

YAJL提供了绑定到yajl,一个用C编写的快速解析器。但要小心:原来的yajl是BSD,但Haskell YAJL是GPL-v3。

json可能是一个安全的选择。

答案 2 :(得分:6)

根据this listRJson的下载频率高于json,但json是Hackage上其他图书馆使用最多的{77} {{} 3}}(33直接和44间接),而第二次reverse dependencies为5。