Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the most mature JSON library for Erlang?

Tags:

json

erlang

I wanted to use YAML but there is not a single mature YAML library for Erlang. I know there are a few JSON libraries, but was wondering which is the most mature?

like image 740
yazz.com Avatar asked Mar 07 '10 10:03

yazz.com


6 Answers

Have a look at the one from mochiweb: mochijson.erl

1> mochijson:decode("{\"Name\":\"Tom\",\"Age\":10}").   
{struct,[{"Name","Tom"},{"Age",10}]}
like image 111
TP. Avatar answered Nov 10 '22 15:11

TP.


I prefer Jiffy. It works with binary and is realy fast.

1> jiffy:decode(<<"{\"Name\":\"Tom\",\"Age\":10}">>).
{[{<<"Name">>,<<"Tom">>},{<<"Age">>,10}]}

Can encode as well:

2> jiffy:encode({[{<<"Name">>,<<"Tom">>},{<<"Age">>,10}]}).
<<"{\"Name\":\"Tom\",\"Age\":10}">>
like image 25
Konstantin Voschanov Avatar answered Nov 10 '22 14:11

Konstantin Voschanov


Also check out jsx. "An erlang application for consuming, producing and manipulating json. Inspired by Yajl." I haven't tried it myself yet, but it looks promising.

As a side note; I found this library through Jesse, a json schema validator by Klarna.

like image 4
André Laszlo Avatar answered Nov 10 '22 14:11

André Laszlo


I use the json library provided by yaws.

Edit: I actually switched over to Jiffy, see Konstantin's answer.

like image 3
Yogish Baliga Avatar answered Nov 10 '22 14:11

Yogish Baliga


Trapexit offers a really cool search feature for Erlang projects.

Lookup for JSON there, you'll find almost 13 results. Check the dates of the latest revisions, the user rating, the project activity status.

UPDATE: I've just found a similar question n StackOverflow. Apparently, they are quite happy with the erlang-json-eep-parser parser.

like image 2
Roberto Aloi Avatar answered Nov 10 '22 14:11

Roberto Aloi


My favourite is mochijson2. The API is straightforward, it's fast enough for me (I never actually bothered to benchmark it though, to be honest--I'm mostly en- and de-coding small packets), and I've been using it in a stable "production server" for a year now or so. Just remember to install mochinum as well, mochijson2 uses it to encode large numbers, if you miss it, and you'll try to encode a large number, it will throw an exception.

See also: mochijson2 examples (stackoverflow)

like image 2
Jonathan Ringstad Avatar answered Nov 10 '22 15:11

Jonathan Ringstad