如何在 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">>
我正在用 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">>