Подтвердить что ты не робот

Какой пакет Haskell для JSON

В Hackage для Haskell имеется около десятка пакетов JSON. Как узнать, какой пакет я должен использовать? Как получить популярное мнение?

Существуют ли какие-либо статистические данные о том, какой пакет используется больше всего, загрузили больше всего и т.д.?

4b9b3361

Ответ 1

Другие ответы устарели, я думаю, сегодня принято считать, что лучшая библиотека JSON и де-факто стандарт в Haskell - это Aeson:

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

Сопровождающий - Брайан О'Салливан, известный своими глубокими знаниями о Хаскелле и его ориентированной на результат работой; нет сомнений, что это правильный выбор.

Кроме того, Aeson предлагает очень хороший API, проверить этот пример.

Кроме того, я не знаю, в прошлом, но в настоящее время также 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"

Ответ 2

Выберите зависимости других

Если вы используете одну из новых веб-фреймворков Haskell, вы можете использовать одну и ту же библиотеку json, которую использует инфраструктура. Из обратных зависимостей кажется, что спаривание:

  • Yesod: JSONb
  • Happstack: RJson
  • На-Лошадь:

И много пакетов используют json.

Выбрать по функциям

Вы также можете использовать пакет в соответствии с его функциями.

Рассмотрите возможность использования JSONb, если вы пользователь ByteStrings. Он использует AttoParsec вместо обычного Parsec, поэтому он может быть быстрее (но сначала измерьте).

RJson делает некоторые умные трюки для автоматической сериализации вложенных записей.

YAJL предлагает привязки к yajl, быстрому парсеру, написанному на C. Но будьте осторожны: исходный yajl - BSD, но Haskell YAJL - GPL-v3.

json, вероятно, является безопасным выбором.

Ответ 3

Согласно этот список, RJson был загружен чаще, чем json, но json, безусловно, наиболее часто используется другими библиотеками в Hackage, причем 77 обратные зависимости (33 прямых и 44 косвенных), против 5 для JSONb в секунду.