%{"attributes" => %{"color" =>-6ren">
gpt4 book ai didi

elixir - 在 Elixir 中映射 JSON 值

转载 作者:行者123 更新时间:2023-12-05 00:14:17 25 4
gpt4 key购买 nike

我已经使用 Posion.decode 解析了以下 JSON!

json = %{"color-Black|size:10" => 
%{"attributes" => %{"color" => "Black","size" => "11"},
"isAvailable" => true,
"pricing" => %{"standard" => "$415.00", "sale" => 415}},
"color|size-EU:9.5" =>
%{"attributes" => %{"color" => "Black","size" => "11"},
"isAvailable" => true,
"pricing" => %{"standard" => "$415.00", "sale" => 415}}}

我想映射这个,但我无法获取 JSON 元素,因为节点元素中的文本发生了变化。
到目前为止我已经尝试过了。
Enum.map(json , fn(item) ->
%{
color: item.attributes["color"],
size: item.attributes["size"],
price: item.pricing["standard"] * 100,
isAvailable: item.isAvailable
}
end)

但是这段代码给出了一些与访问相关的错误。

最佳答案

在映射映射时,迭代的键值对作为元组到达映射器 {key, value} :

Enum.map(json, fn {_, %{"attributes" => attributes,
"isAvailable" => isAvailable,
"pricing" => pricing}} ->
%{
color: attributes["color"],
size: attributes["size"],
price: pricing["standard"],
isAvailable: isAvailable
}
end)

#⇒ [
# %{color: "Black", isAvailable: true, price: "$415.00", size: "11"},
# %{color: "Black", isAvailable: true, price: "$415.00", size: "11"}
# ]

在这里,我们对映射器中的值使用就地模式匹配来简化匹配器本身的代码,并使其在输入错误的情况下不易出错。

关于elixir - 在 Elixir 中映射 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com