Pregunta

Soy un bebé de dos semanas con respecto a Erlang y Mochiweb. Antes tenía un sistema que se ejecuta en PHP y pronto me di cuenta de que no iba a poder manejar el tipo de carga que esperaba. Así que decidí cambiar el backend a un servidor basado en Mochiweb. En este momento necesito saber cómo implementar JSON con Mochiweb. Soy plenamente consciente de la existencia de la biblioteca mochijson2, pero al ser un principiante, no puedo entender cómo usarla. ¿Podría alguien indicarme algún lugar donde pueda encontrar ejemplos de cómo usar esta biblioteca o cualquier otra biblioteca json en erlang?

¿Fue útil?

Solución

La API de mochijson2 consiste esencialmente en solo dos funciones, que (si ha descargado mochiweb) se pueden usar directamente desde el shell de Erlang de la siguiente manera:

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

Hay algunos casos de prueba en la parte inferior de mochiweb / src / mochijson2.erl que también pueden ser útiles para comprender la asignación entre los términos JSON y los términos de Erlang.

Otros consejos

Sí, tuve que pasar un montón de tiempo en el código fuente para averiguar qué estaba pasando. En realidad, eso describe gran parte de mi experiencia con Erlang. Esto me lo ha conseguido, generando el JSON que necesito. Aquí hay un ejemplo rápido.

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

Entonces, en ese ejemplo, puedes ver cómo hacer objetos (que mochijson2 quiere que llames estructuras), cadenas, enteros y matrices. Buena suerte!

Aquí están los comandos erlang equivalentes además del comentario de @ 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]}">>).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top