Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON数组获取数据_Json_Elixir_Elixir Poison - Fatal编程技术网

从JSON数组获取数据

从JSON数组获取数据,json,elixir,elixir-poison,Json,Elixir,Elixir Poison,我有一个JSON数组: 响应=[ %{ “创建于”=>1542757526, “电子邮件”=>”bcs@yahoo.com", “名字”=>“拉娜”, “id”=>“YW1pcnBheWFyeUB5YWhvby5jb20=”, “上次单击”=>无, “上次发送的电子邮件”=>无, “姓氏”=>“阿米尔”, “上次打开”=>无, “更新位置”=>1542759123 }, %{ “创建于”=>1542757457, “电子邮件”=>”abc@gmail.com", “名字”=>“拉娜”, “id”

我有一个JSON数组:

响应=[
%{
“创建于”=>1542757526,
“电子邮件”=>”bcs@yahoo.com",
“名字”=>“拉娜”,
“id”=>“YW1pcnBheWFyeUB5YWhvby5jb20=”,
“上次单击”=>无,
“上次发送的电子邮件”=>无,
“姓氏”=>“阿米尔”,
“上次打开”=>无,
“更新位置”=>1542759123
},
%{
“创建于”=>1542757457,
“电子邮件”=>”abc@gmail.com",
“名字”=>“拉娜”,
“id”=>“cmFtaXIyNDI2QGdtYWlsLmNvbQ==”,
“上次单击”=>无,
“上次发送的电子邮件”=>无,
“姓氏”=>“阿米尔”,
“上次打开”=>无,
“更新位置”=>1542759001
},
# .......
]
我正在尝试获取
response
变量中所有项目的
email
字段。例如:

[”bcs@yahoo.com", "xyz@gmail.com", ....]

您正在查找。此方法对给定列表/可枚举项中的每个项调用传递的函数:

Enum.map(响应,fn项->项[“电子邮件”]结束)
或者,您可以使用速记并使其简洁:

Enum.map(响应,&(&1[“电子邮件]))

外部资源:请参阅并理解函数式编程中的映射概念


旁注:
平面映射/2
map/2
的一个变体,它期望“映射结果”是另一个列表(因此可以与其余映射结果合并并展平)。

您正在寻找的。此方法对给定列表/可枚举列表中的每个项目调用传递的函数:

Enum.map(响应,fn项->项[“电子邮件”]结束)
或者,您可以使用速记并使其简洁:

Enum.map(响应,&(&1[“电子邮件]))

外部资源:请参阅并理解函数式编程中的映射概念


旁注:
平面图/2
map/2
的一个变体,它期望“映射结果”是另一个列表(因此它可以与其余映射结果合并并展平)。

除了映射,您还可以查看。本质上,它们结合了&

它们允许您执行以下操作:

for %{"email" => email} <- response, do: email

对于%{“email”=>email}除了地图,您还可以查看。本质上,它们结合了&

它们允许您执行以下操作:

for %{"email" => email} <- response, do: email

对于%{“email”=>email}您可以显示您尝试过的任何代码吗?您的代码的哪个部分有问题?是的,当我累了时
Enum.flat\u map(响应,fn(c)->c[“email”]end)
收到此错误:
(Protocol.UndefinedError)协议枚举未为实现”bcs@yahoo.com". 此协议的实现对象为:DBConnection.PrepareStream、DBConnection.Stream、Date.Range、exto.Adapters.SQL.Stream、File.Stream、Function、GenEvent.Stream、HashDict、HashSet、IO.Stream、List、Map、MapSet、Postgrex.Stream、Range、Stream、Timex.Interval
您能显示您尝试过的代码吗?您的代码的哪个部分有问题?是的,当我累了时
Enum.flat\u map(响应,fn(c)->c[“email”]end)
收到此错误:
(Protocol.UndefinedError)协议枚举未为实现”bcs@yahoo.com". 此协议的实现对象为:DBConnection.PrepareStream、DBConnection.Stream、Date.Range、exto.Adapters.SQL.Stream、File.Stream、Function、GenEvent.Stream、HashDict、HashSet、IO.Stream、List、Map、MapSet、Postgrex.Stream、Range、Stream、Timex.Interval
,感谢您救了我的命。。。你能给我详细介绍一下这个功能吗?谢谢你救了我的命。。。你能给我详细介绍一下这个功能吗?