如何在 Erlang 中解析 'normal' JSON

How to parse 'normal' JSON in Erlang

我正在用 Erlang 编写一个简单的聊天服务器。 我希望服务器从我的客户端接收命令(用 Java 编写的 Android 应用程序)。一个命令由一个 JSON 字符串组成,其中包括命令本身和执行命令所需的附加信息,例如

{"command": "send", "message": "Hello World!"}

所以我一直在寻找 Erlang JSON 解析器,偶然发现了 jiffy、jsx 和 mochijson。 问题是这些解析器只接受 'Erlang Style JSON'(例如

<<"{\"foo\": \"bar\"}">>

) ,如果我的客户端是用 Erlang 编写的,但不理解 'normal' JSON,它被我的 Android 应用程序中的 JSON 解析器使用。

有没有办法在 Erlang 中使用标准 JSON?

您的 "erlang json" 正是 Erlang 表示二进制字符串的方式:

亲自尝试一下:

$erl
1> list_to_binary(io:get_line("")).                          
{"command": "send", "message": "Hello World!"}
<<"{\"command\": \"send\", \"message\": \"Hello World!\"}\n">>