检查返回-将字符串转换为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"}
啊!我没想到这个。啊!我没想到那个。