如何通过键查询json对象列表

时间:2019-03-05 09:35:00

标签: elixir

我是Elixir的新手,并且有以下列表对象:

[{"user_id", "DPMJecfXsYMlYnM4dvUVUEjmV763"}, {"role", "admin"}, {"content-length", "0"}, {"host", "localhost:5000"}, {"connection", "close"}]

每个元素中的第一个值是键,第二个是值。例如,user_id是键,DPMJecfXsYMlYnM4dvUVUEjmV763是值。如何在Elixir中通过key查询该对象?

2 个答案:

答案 0 :(得分:1)

您发布了关键字列表。有Keyword.get函数,但仅适用于原子。因此,我建议先转换为地图,然后获取值:

[
  {"user_id", "DPMJecfXsYMlYnM4dvUVUEjmV763"},
  {"role", "admin"},
  {"content-length", "0"},
  {"host", "localhost:5000"},
  {"connection", "close"}
]
|> Map.new
|> Map.get("user_id")

答案 1 :(得分:0)

这看起来像X-Y question。如果您使用的是Plug,那么您真正想做的就是get a response header from the connection

  

get_resp_header(conn, key)

     

返回由key指定的请求标头的值。

     

示例

     

iex> get_req_header(conn, "accept")

     

["application/json"]

因此您可以尝试:Plug.Conn.get_resp_header(conn, "user_id")