2013-10-01 26 views
0

我有一个二进制< <“{\”resp_child \“:\”0 \“} \ n”(您可以看到它包含JSON)并且我想提取这个0从这个二进制二进制< < 0 >>。erlang将复杂的二进制结构转换为JSON

我是新来的Erlang,我正在试图

string:join(binary_to_list(<<"{\"resp_child\":\"0\"}\n">>), "") 

,但我得到的JSON字符串作为结果。

"{\"resp_child\":\"0\"}\n" 

不知道该怎么做进一步得到< < 0 >>。

谢谢。

+0

尝试解析JSON和提取0,然后你可以只使用一个list_to_integer(“0”),将其转换。 –

+0

如果将“0”替换为“110101”之类的值,可能会使得您的示例更清晰,因为0是0,无论它是否是二进制的;-) – ksimons

+0

0不表示二进制数字(0,1)。它可以是9介于0和 –

回答

4

为什么不使用Erlang JSON解析库之一?

  1. jsx
  2. jiffy
  3. mochijson2

    proplists:的get_value(< < “resp_child” >>,JSX:解码(< < “{\” resp_child \ “:\” 0 \ “} \ n” >>))。

因此,如果您需要更换< < “0” >>,< < “1” >> ... < < “9” >>到< < 0 >>,< < 1> >,... < < 9 >>你可以写这个转换函数

+0

感谢的人,我用mochijson2得到这个工作的任何数字。谢谢你回答:) –

0

是的,这段代码适合我。

Struct = mochijson2:decode(<<"{\"resp_child\":\"0\"}\n">>), 
{struct, JsonData} = Struct, 
Digits = proplists:get_value(<<"resp_child">>, JsonData). 

位数是< < 0 >>,那就是我想要的。

你可以阅读更多关于proplists在:http://www.erlang.org/doc/man/proplists.html

谢谢:)