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