Ответ 1
Посмотрите на один из mochiweb: mochijson.erl
1> mochijson:decode("{\"Name\":\"Tom\",\"Age\":10}").
{struct,[{"Name","Tom"},{"Age",10}]}
Я хотел использовать YAML, но для Erlang нет ни одной зрелой библиотеки YAML. Я знаю, что есть несколько библиотек JSON, но было интересно, какая из них самая зрелая?
Посмотрите на один из mochiweb: mochijson.erl
1> mochijson:decode("{\"Name\":\"Tom\",\"Age\":10}").
{struct,[{"Name","Tom"},{"Age",10}]}
Я предпочитаю Jiffy. Он работает с двоичным и работает быстро.
1> jiffy:decode(<<"{\"Name\":\"Tom\",\"Age\":10}">>).
{[{<<"Name">>,<<"Tom">>},{<<"Age">>,10}]}
Может также кодироваться:
2> jiffy:encode({[{<<"Name">>,<<"Tom">>},{<<"Age">>,10}]}).
<<"{\"Name\":\"Tom\",\"Age\":10}">>
Также проверьте jsx. "Приложение erlang для потребления, производства и манипулирования json. Вдохновленный Яджлом". Я еще не пробовал, но выглядит многообещающе.
В качестве побочного примечания; Я нашел эту библиотеку через Jesse, механизм проверки json схемы Klarna.
Trapexit предлагает действительно интересную функцию поиска для проектов Erlang.
Поиск JSON там, вы найдете почти 13 результатов. Проверьте даты последних изменений, рейтинг пользователя, статус активности проекта.
ОБНОВЛЕНИЕ: Я только что нашел аналогичный вопрос n fooobar.com/questions/299010/.... По-видимому, они вполне довольны парсером erlang-json-eep-parser.
Я использую json library, предоставляемую рысканиями.
Изменить: я действительно перешел к Jiffy, см. ответ Константина.
Моим любимым является mochijson2. API прост, он достаточно быстр для меня (я никогда на самом деле не удосужился сравнить его, хотя, честно говоря, я занимаюсь главным образом де-кодированием небольших пакетов), и я использовал его в стабильном "производственного сервера" на год или около того. Не забудьте также установить мочин, mochijson2 использует его для кодирования больших чисел, если вы его пропустите, и вы попытаетесь кодировать большое число, оно будет генерировать исключение.
Смотрите также: fooobar.com/info/299012/...