Qué paquete Haskell para JSON
hackage (3)
Elegir por dependencias ajenas.
Si usa uno de los nuevos marcos web de Haskell, puede considerar usar la misma biblioteca json que el marco está usando. De las dependencias inversas parece que el emparejamiento es:
- Yesod:
JSONb
- Happstack:
RJson
- A caballo: ???
Y muchos paquetes usan json
.
Elegir por características
También puede elegir usar un paquete de acuerdo con sus características.
Considera usar JSONb
si eres un usuario de ByteStrings. Utiliza AttoParsec en lugar del habitual Parsec, por lo que podría ser más rápido (pero mídalo primero).
RJson
está haciendo algunos trucos inteligentes para serializar registros anidados automáticamente .
YAJL
ofrece enlaces a yajl, un analizador rápido escrito en C. Pero tenga cuidado: el yajl original es BSD, pero Haskell YAJL es GPL-v3.
json
es, probablemente, una opción segura.
Hay alrededor de una docena de paquetes JSON en Hackage for Haskell. ¿Cómo sé qué paquete debo usar? ¿Cómo obtengo una opinión popular?
¿Hay alguna estadística sobre qué paquete se está utilizando más, se ha descargado más, etc.?
Las otras respuestas son obsoletas, creo, hoy en día se acepta ampliamente, creo que la mejor biblioteca JSON y el estándar de facto en Haskell es Aeson:
http://hackage.haskell.org/package/aeson
El mantenedor es Brian O''Sullivan, conocido por su profundo conocimiento de Haskell y su trabajo orientado al desempeño; No hay duda de que es la elección correcta.
Además, Aeson ofrece una API muy buena, verifique este ejemplo .
Además, no sé por el pasado, pero hoy en día también Yesod usa Aeson:
http://hackage.haskell.org/packages/archive/yesod-json/1.1.0/doc/html/Yesod-Json.html "utilizando el paquete aeson"
http://www.yesodweb.com/book/json-web-service "Usaremos aeson para el análisis y procesamiento JSON"
Según esta lista , RJson
se ha descargado con más frecuencia que json
, pero json
es, con mucho, el más utilizado por otras bibliotecas en Hackage, con 77 dependencias inversas (33 directas y 44 indirectas), en comparación con 5 para JSONb
en segundo lugar.