无法返回编码:Poison中的日期类型

Dan*_*_es 6 elixir phoenix-framework

我在凤凰城使用默认的json工具,但由于某种原因我无法返回任何日期(字段类型:日期).我得到这样的东西:

unable to encode value: {2015, 3, 24}
Run Code Online (Sandbox Code Playgroud)

我在类型为date的db中使用了postgres db.我错过了什么吗?在用毒素编码之前,我是否需要构建一个解析日期的函数?

Jor*_*mov 5

你的"约会对象"只是一个Elixir元组.Posion不知道如何编码Elixir元组:

iex(1)> Poison.encode({2015, 3, 24}) 
{:error, {:invalid, {2015, 3, 24}}}
Run Code Online (Sandbox Code Playgroud)

如果您首先将日期格式化为字符串,Posion将毫无困难地将其编码为JSON:

iex(2)> Poison.encode(:io_lib.format("~4..0B-~2..0B-~2..0B", [2015, 3, 24]) |> List.flatten |> to_string)
{:ok, "\"2015-03-24\""}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.