erlang中json解析

2017-09-28  本文已影响0人  司马阿Q

最近要用erlang写一个接口,功能是银行卡信息验证,这个要接入,第三方的服务提供者,他们的接口要求采用http post请求,请求body要求是标准的json的格式,在github上有个用erlang写的开源应用jsx可以满足我需求,用起来很方便,现在总结一下它的基本应用:

添加依赖到rebar3管理的app中的rebar.config中
...
{erl_opts, [debug_info]}.
{deps, [
       ...
       {jsx, {git, "https://github.com/talentdeficit/jsx.git", {branch, "v2.8.0"}}}
]}.
...
下载并编译jsx到app的本地库中,执行下面的命令
$  rebar3 compile

利用jsx接口实现erlang term与json互相转换

1> jsx:decode(<<"{\"library\": \"jsx\", \"awesome\": true}">>).
[{<<"library">>,<<"jsx">>},{<<"awesome">>,true}]
2> jsx:decode(<<"{\"library\": \"jsx\", \"awesome\": true}">>, [return_maps]).
#{<<"awesome">> => true,<<"library">> => <<"jsx">>}
1> jsx:encode([{<<"library">>,<<"jsx">>},{<<"awesome">>,true}]).
<<"{\"library\": \"jsx\", \"awesome\": true}">>
2> jsx:encode(#{<<"library">> => <<"jsx">>, <<"awesome">> => true}).
<<"{\"awesome\":true,\"library\":\"jsx\"}">>

注意:map和proplit转化为json时,其中的元素应为二进制的表示形式

上一篇 下一篇

猜你喜欢

热点阅读