2016-07-05 40 views
2

我正在編寫一些Elixir代碼,它將發出HTTP POST請求,其中主體是選項的JSON文檔。其中一個屬性以@符號開頭。在elixir中以@開頭的映射關鍵字文字

不可能的:

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

什麼是寫一個地圖鍵文字與@開始正確的方法是什麼?

回答

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" } 
相關問題