我正在使用Elixir解码包含JSON的Base64字符串。 我使用以下函数:
Base.url_decode64(字符串)
但是,此函数返回一个字符串。特别是:
“{\” 算法\ “:\” HMAC-SHA256 \ “\ ”app_data文件\“:\ ”1 \“ \ ”issued_at \“:1452249105,\ ”页面\“:{\” ID \ “:\” 1051194981579510 \ “\ ”管理员\“:真正} \ ”用户\“:{\ ”国家\“:\ ”本质\“,\ ”区域设置\“:\ ”EN_GB \“,\”年龄\ “:{\” 最小\ “:21}}}”
问题是这个结构应该是一个map而不是一个字符串,否则我无法访问JSON字段。
问题是:如何将此字符串转换为地图? 或者:我如何将此字符串视为地图并访问单个字段?
答案 0 :(得分:7)
您需要使用JSON库。有几个,一个常用的是Poison(hex上有其他人):
string |> Base.url_decode64 |> Poison.decode!
这使用Poison.decode!/2函数。
每当我使用时,我喜欢将其别名为JSON,以便在我的代码中没有Poison
的引用:
alias Poison, as: JSON
string |> Base.url_decode64 |> JSON.decode!