Pergunta

Eu sou um bebê de duas semanas com relação a Erlang e Mochiweb. Antes, eu tinha um sistema em execução no PHP e logo percebi que não seria capaz de lidar com o tipo de carga que eu esperava. Por isso, decidi mudar o back -end para um servidor baseado em Mochiweb. No momento, preciso saber como implementar o JSON com Mochiweb. Estou plenamente ciente da biblioteca existente da Mochijson2, mas, sendo iniciante, não consigo descobrir como usá -la. Alguém poderia me apontar para algum lugar onde eu possa encontrar exemplos de usar esta biblioteca ou qualquer outra biblioteca JSON em Erlang?

Foi útil?

Solução

A API mochijson2 consiste essencialmente em apenas duas funções, que (se você baixou o Mochiweb) pode ser usado diretamente no shell Erlang da seguinte forma:

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

Existem alguns casos de teste na parte inferior da mochiweb/src/mochijson2.erl que também podem ser úteis para entender o mapeamento entre os termos JSON e os termos de Erlang.

Outras dicas

Sim, eu tive que passar um monte de tempo no código -fonte para descobrir o que estava acontecendo. Na verdade, isso descreve muita experiência com Erlang. Isso me conseguiu, gerando o JSON de que preciso. Aqui está um exemplo rápido.

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

Portanto, nesse exemplo, você pode ver como fazer objetos (que Mochijson2 quer que você chame estruturas), cordas, números inteiros e matrizes. Boa sorte!

Aqui estão os comandos equivalentes de Erlang, além de @rik.the.vik Comentário:

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]}">>).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top