What is the most mature JSON library for Erlang

2020-01-31 03:29发布

问题:

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?

回答1:

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

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


回答2:

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}">>


回答3:

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.



回答4:

I use the json library provided by yaws.

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



回答5:

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.



回答6:

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)



标签: json erlang