将Base64字符串转换为Elixir中的映射

时间:2016-01-08 10:43:06

标签: json elixir

我正在使用Elixir解码包含JSON的Base64字符串。 我使用以下函数:

  

Base.url_decode64(字符串)

但是,此函数返回一个字符串。特别是:

  

“{\” 算法\ “:\” HMAC-SHA256 \ “\ ”app_data文件\“:\ ”1 \“ \ ”issued_at \“:1452249105,\ ”页面\“:{\” ID \ “:\” 1051194981579510 \ “\ ”管理员\“:真正} \ ”用户\“:{\ ”国家\“:\ ”本质\“,\ ”区域设置\“:\ ”EN_GB \“,\”年龄\ “:{\” 最小\ “:21}}}”

问题是这个结构应该是一个map而不是一个字符串,否则我无法访问JSON字段。

问题是:如何将此字符串转换为地图? 或者:我如何将此字符串视为地图并访问单个字段?

1 个答案:

答案 0 :(得分:7)

您需要使用JSON库。有几个,一个常用的是Poisonhex上有其他人):

string |> Base.url_decode64 |> Poison.decode!

这使用Poison.decode!/2函数。

每当我使用时,我喜欢将其别名为JSON,以便在我的代码中没有Poison的引用:

alias Poison, as: JSON
string |> Base.url_decode64 |> JSON.decode!