mochijson2 exemples!
je suis un bébé de deux semaines en ce qui concerne Erlang et Mochiweb. Plus tôt, J'avais un système fonctionnant sur PHP et j'ai vite réalisé qu'il ne serait pas capable de gérer le type de charge que j'attendais. J'ai donc décidé de passer à un serveur basé sur Mochiweb. J'ai besoin de savoir comment implémenter JSON avec Mochiweb. Je suis pleinement conscient de l'existence de la bibliothèque mochijson2, mais étant un débutant, Je ne peux pas me déplacer pour comprendre comment l'utiliser. Quelqu'un pourrait-il m'indiquer un endroit où puis-je trouver des exemples d'utilisation de cette bibliothèque ou de toute autre bibliothèque json dans erlang?
4 réponses
l'API mochijson2 se compose essentiellement de deux fonctions, qui (si vous avez téléchargé mochiweb) peuvent être utilisées directement depuis le shell Erlang comme suit:
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]">>
Il y a quelques cas d'essai au fond de mochiweb/src/mochijson2.erl qui pourrait également être utile pour comprendre la correspondance entre les Termes JSON et Erlang.
Ouais, j'ai dû passer beaucoup de temps dans le code source pour comprendre ce qui se passait. En fait, ça décrit beaucoup de mon expérience avec Erlang. Cela m'a permis de m'en sortir, en générant le JSON dont j'ai besoin. Voici un exemple rapide.
ERL :: {struct, [{strKey, <<"strVal">>}, {intKey, 10}, {arrayKey, [1, 2, 3]}]}
JSON :: {strKey:"strVal", intKey:10, arrayKey:[1, 2, 3]}
donc dans cet exemple vous pouvez voir comment faire des objets (que mochijson2 veut que vous appeliez des structures), des chaînes, des entiers et des tableaux. Bonne chance!
je suggère la lecture/regarder/télécharger commencer à développer des Applications Web sur Erlang
Voici les commandes erlang équivalentes en plus de @rik.le.commentaire de 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]}">>).