JSON使用Poison在Elixir中编码地图

时间:2015-02-27 10:31:03

标签: json elixir

我试图将我的地图解析为json字符串,我该如何使用毒药?

我已尝试过以下内容。

iex(19)> test = %{"api_key" => "sklfjklasfj"}
%{"api_key" => "sklfjklasfj"}
iex(20)> Poison.Encoder.encode(test, [])
[123, [[34, ["api_key"], 34], 58, [34, ["sklfjklasfj"], 34]], 125]

我期待的是

"{"api_key": "sklfjklasfj"}"

1 个答案:

答案 0 :(得分:13)

我意识到毒药正在返回一个char_list,可以将其转换为类似的字符串。

iex(27)> to_string Poison.Encoder.encode(test, [])
"{\"api_key\":\"sklfjklasfj\"}"

截至2017年10月(Poison v3),代码为

iex(27)> to_string Poison.encode_to_iodata!(test, [])
"{\"api_key\":\"sklfjklasfj\"}"

或只是

iex(27)> Poison.encode!(test, [])
"{\"api_key\":\"sklfjklasfj\"}"

没有to_string电话。