mochijson2 examples!

梦想的初衷 提交于 2019-12-18 11:28:06

问题


I'm a two-week old infant with regards to Erlang and Mochiweb. Earlier I had a system running on PHP and soon I realised that it wasn't going to be able to handle the kind of load I was expecting. So I decided to switch the backend to a Mochiweb based server. Right now I need to know how to implement JSON with Mochiweb. I'm fully aware of the existense of mochijson2 library, but being a beginner, I can't get around to figuring out how to use it. Could someone point me to some place where I can find examples of using this library or any other json library in erlang?


回答1:


The mochijson2 API essentially consists of just two functions, which (if you've downloaded mochiweb) can be used directly from the Erlang shell as follows:

erl -pa path/to/mochiweb/ebin
...
1> mochijson2:decode(<<"[1,2,3]">>).
[1,2,3]
2> iolist_to_binary(mochijson2:encode([1,2,3])).
<<"[1,2,3]">>

There are some test cases at the bottom of mochiweb/src/mochijson2.erl that might also be helpful in understanding the mapping between JSON terms and Erlang terms.




回答2:


Yeah, I had to spend a bunch of time in the source code to figure out what was going on. Actually, that describes a lot of my experience with Erlang. This has gotten me by, generating the JSON I need. Here's a quick example.

ERL  :: {struct, [{strKey, <<"strVal">>}, {intKey, 10}, {arrayKey, [1, 2, 3]}]}
JSON :: {strKey:"strVal", intKey:10, arrayKey:[1, 2, 3]}

So in that example you can see how to make objects (which mochijson2 wants you to call structs), strings, integers and arrays. Good luck!




回答3:


I suggest reading/watching/downloading Start Developing Web Applications on Erlang




回答4:


Here are the equivalent erlang commands in addition to @rik.the.vik's comment:

erl -pa path/to/mochiweb/ebin
...
iolist_to_binary(mochijson2:encode({struct, [{strKey, <<"strVal">>}, {intKey, 10}, {arrayKey, [1, 2, 3]}]})).
mochijson2:decode(<<"{\"strKey\":\"strVal\", \"intKey\":10, \"arrayKey\":[1, 2, 3]}">>).


来源:https://stackoverflow.com/questions/1000046/mochijson2-examples

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!