Подтвердить что ты не робот

Mochijson2 примеры!

Я - двухнедельный младенец в отношении Эрланг и Мочиве. Раньше у меня была система, работающая на PHP, и вскоре я понял, что она не сможет справиться с такой нагрузкой, которую я ожидал. Поэтому я решил переключить сервер на сервер на базе Mochiweb. Сейчас мне нужно знать, как реализовать JSON с Mochiweb. Я полностью осведомлен о существовании библиотеки mochijson2, но, будучи новичком, я не могу разобраться, как его использовать. Может ли кто-нибудь указать мне место, где я могу найти примеры использования этой библиотеки или любой другой библиотеки json в erlang?

4b9b3361

Ответ 1

API mochijson2 по существу состоит из двух функций, которые (если вы загрузили mochiweb) можно использовать непосредственно из оболочки Erlang следующим образом:

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.

Ответ 2

Да, мне пришлось потратить кучу времени в исходном коде, чтобы выяснить, что происходит. На самом деле, это описывает мой опыт работы с Erlang. Это привело меня, создав JSON, в котором я нуждаюсь. Вот краткий пример.

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

Итак, в этом примере вы можете увидеть, как создавать объекты (которые mochijson2 хочет, чтобы вы вызывали structs), строки, целые числа и массивы. Удачи!

Ответ 4

Ниже приведены эквивалентные команды 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]}">>).