【问题标题】:Convert a Base64 string into a map in Elixir在 Elixir 中将 Base64 字符串转换为地图
【发布时间】:2016-01-08 18:48:22
【问题描述】:

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

Base.url_decode64(字符串)

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

"{\"算法\":\"HMAC-SHA256\",\"app_data\":\"1\",\"issued_at\":1452249105,\"page\":{\"id\ ":\"1051194981579510\",\"admin\":true},\"user\":{\"country\":\"se\",\"locale\":\"en_GB\",\"年龄\":{\"min\":21}}}"

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

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

【问题讨论】:

  • 如果@Gazler 的回答是适合您的解决方案,您应该接受它。

标签: json elixir


【解决方案1】:

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

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

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

每当我使用它时,我都喜欢将其别名为 JSON,这样我的代码中就不会引用 Poison

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

【讨论】:

  • 您是否使用别名以便以后可以交换 JSON 库?
  • @ChrisMeyer 是的,这是主要原因。另一个是不用记住Poison是一个json库。
猜你喜欢
  • 2015-12-26
  • 2018-09-07
  • 2014-07-21
  • 2020-06-01
  • 1970-01-01
  • 2019-04-07
  • 2013-07-04
  • 2016-08-30
  • 1970-01-01
相关资源
最近更新 更多