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
Elixir-更新具有字符串键的地图_Elixir - Fatal编程技术网

Elixir-更新具有字符串键的地图

Elixir-更新具有字符串键的地图,elixir,Elixir,如何更新具有字符串键的地图?我想更新“品牌”价值 我的代码(产品是带有“品牌”键的地图): 产出: uri decode: "\"e&ggsssssaaqss\"" json decode: "e&ggsssssaaqss" actual product brand: "%22e%26ggsssssaaqss%22" 它没有更新产品[“品牌”] 实际产品品牌日志应等于更新后的json解码日志 我做错了什么?如果地图有如下字符串键: my_map = %{"a" => 1,

如何更新具有字符串键的地图?我想更新“品牌”价值

我的代码(产品是带有“品牌”键的地图):

产出:

uri decode: "\"e&ggsssssaaqss\""
json decode: "e&ggsssssaaqss"
actual product brand: "%22e%26ggsssssaaqss%22"
它没有更新
产品[“品牌”]

实际产品品牌
日志应等于更新后的
json解码
日志


我做错了什么?

如果地图有如下字符串键:

my_map = %{"a" => 1, "b" => 2}
您可以使用更改的键创建新地图,如下所示:

my_new_map = Map.put(my_map, "a", 100)
或者,您可以使用更新的映射重新绑定现有的
my_map
变量,如下所示:

my_map = Map.put(my_map, "a", 100)

更简洁的语法是|运算符

my_map = %{"a" => 1, "b" => 2}
%{my_map | "a" => 100}
或者也可以使用
put_in
方法

my_map = %{"a" => 1, "b" => 2}
put_in(my_map["a"], 100)

product
的原始值是多少?您需要将其重新赋值:
product=Map.put(product,“brand”,brand)
@DogbertThanks@Dogbert我会删除这项质询。你能告诉我URI解码的方向,然后JSON解码整个地图,而不是对每个字段单独进行解码吗?
my_map = %{"a" => 1, "b" => 2}
put_in(my_map["a"], 100)