检查返回-将字符串转换为elixir中的映射

检查返回-将字符串转换为elixir中的映射,elixir,Elixir,假设我有一张地图:%{a:b}。我正在检查它并得到%{a:\'b\'}。如何将此字符串转换为elixir中的地图?有什么优雅的方法吗?有一些函数允许您将Elixir数据类型封送/解封到:erlang.term\u to\u binary和:erlang.binary\u to\u term。然后可以将二进制字符串写入文件以供以后使用。但是,生成的二进制文件不是很可读 inspect协议旨在让人们读取而不是封送数据结构。如果您避免了诸如Pid或Reference等不透明类型和不完整列表的明显缺陷,

假设我有一张地图:
%{a:b}
。我正在检查它并得到%{a:\'b\'}。如何将此字符串转换为elixir中的地图?有什么优雅的方法吗?

有一些函数允许您将Elixir数据类型封送/解封到
:erlang.term\u to\u binary
:erlang.binary\u to\u term
。然后可以将二进制字符串写入文件以供以后使用。但是,生成的二进制文件不是很可读


inspect协议旨在让人们读取而不是封送数据结构。如果您避免了诸如Pid或Reference等不透明类型和不完整列表的明显缺陷,那么Code.eval_字符串技巧可能会奏效,但我担心在一般情况下依赖它

有些函数允许您将Elixir数据类型封送/解封到
:erlang.term\u to\u binary
:erlang.binary\u to\u term
。然后可以将二进制字符串写入文件以供以后使用。但是,生成的二进制文件不是很可读


inspect协议旨在让人们读取而不是封送数据结构。如果您避免了诸如Pid或Reference等不透明类型和不完整列表的明显缺陷,那么Code.eval_字符串技巧可能会奏效,但我担心在一般情况下依赖它

一般来说,你不能。例如,假设您有一个pid作为值或键。当您将字符串分解为映射时,pid甚至可能不存在

据我所知,长生不老药中并没有任何设施可以做到这一点


但是,您始终可以将地图编码为json并在任何时候解码。除非出现瞬态引用,否则这应该是可行的

一般来说,你不能。例如,假设您有一个pid作为值或键。当您将字符串分解为映射时,pid甚至可能不存在

据我所知,长生不老药中并没有任何设施可以做到这一点

但是,您始终可以将地图编码为json并在任何时候解码。除非出现瞬态引用,否则这应该是可行的

前来救援:

iex(1)> {map, _binding} = Code.eval_string "%{a: \"b\"}"
{%{a: "b"}, []}
iex(2)> map
%{a: "b"}
救援行动:

iex(1)> {map, _binding} = Code.eval_string "%{a: \"b\"}"
{%{a: "b"}, []}
iex(2)> map
%{a: "b"}

啊!我没想到这个。啊!我没想到那个。