对于Erlang和Mochiweb,我是一个两周大的婴儿。之前我有一个在PHP上运行的系统,很快我意识到它无法处理我期望的那种负载。所以我决定将后端切换到基于Mochiweb的服务器。 现在我需要知道如何使用Mochiweb实现JSON。我完全了解mochijson2库的存在,但作为初学者,我无法解决如何使用它。有人可以指点我找到在erlang中使用这个库或任何其他json库的例子吗?
答案 0 :(得分:9)
mochijson2 API基本上只包含两个函数,如果你已经下载了mochiweb,可以直接从Erlang shell中使用,如下所示:
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术语之间的映射。
答案 1 :(得分:8)
是的,我不得不在源代码中花费大量时间来弄清楚发生了什么。实际上,这描述了我对Erlang的很多体验。这让我了,生成我需要的JSON。这是一个简单的例子。
ERL :: {struct, [{strKey, <<"strVal">>}, {intKey, 10}, {arrayKey, [1, 2, 3]}]}
JSON :: {strKey:"strVal", intKey:10, arrayKey:[1, 2, 3]}
因此,在该示例中,您可以看到如何创建对象(mochijson2希望您调用结构),字符串,整数和数组。祝你好运!
答案 2 :(得分:4)
我建议阅读/观看/下载Start Developing Web Applications on Erlang
答案 3 :(得分:1)
除了@ rik.the.vik的评论之外,以下是等效的erlang命令:
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]}">>).