2009-06-16 75 views
16

對於Erlang和Mochiweb,我是一個兩週大的嬰兒。早些時候,我有一個運行在PHP上的系統,很快我意識到它不能處理我期待的那種負載。所以我決定將後端切換到基於Mochiweb的服務器。 現在我需要知道如何使用Mochiweb實現JSON。我完全意識到mochijson2庫的存在,但是作爲一名初學者,我無法想象如何使用它。有人能指點我到哪裏可以找到在erlang中使用這個庫或任何其他json庫的例子嗎?mochijson2的例子!

回答

9

的mochijson2 API主要由只有兩個功能,這些功能(如果你已經下載了Mochiweb)可以直接從二郎殼如下使用:

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

在mochiweb/src/mochijson2.erl的底部有一些測試用例,這對於理解JSON術語和Erlang術語之間的映射也可能有幫助。

8

是的,我不得不在源代碼中花費大量時間來弄清楚發生了什麼。其實,這描述了我與Erlang的很多經驗。這讓我得到了生成我需要的JSON。這是一個簡單的例子。所以在這個例子

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

你可以看到如何創建一個對象(其中mochijson2要你打電話結構),字符串,整數和數組。祝你好運!

1

這裏是除了相當於Erlang的命令@ rik.the.vik的評論:

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]}">>).