映射以elinix中的@开头的关键字

时间:2016-07-05 17:57:30

标签: elixir

我正在编写一些将发出HTTP POST请求的Elixir代码,其中正文是选项的JSON文档。其中一个属性以@符号开头。

不可能:

json = %{ q: "foobar", @timestamp: 1234567890 } |> Poison.encode!

编写以@开头的地图密钥文字的正确方法是什么?

1 个答案:

答案 0 :(得分:6)

如果您希望将其视为原子,您可以这样做:

%{ :q => "foobar", :"@timestamp" => 1234567890 }

这也是有效的:

json = %{ :"@timestamp" => 1234567890, q: "foobar" }

然而,这不是:

json = %{ q: "foobar", :"@timestamp" => 1234567890 }
** (SyntaxError) iex:5: syntax error before: "@timestamp"

您还可以使用字符串作为键:

json = %{ "@timestamp" => 1234567890, q: "foobar" }