我有一个结构,@derive Jason.Encoder但该结构中的某些字段是元组,因此无法对结构进行编码,我该如何解决:/
更新
我已经使用下面提到的方法来实现协议。关于这种方法需要注意的一件重要事情是它会改变整个项目的编码,请小心!
bxd*_*oan 15
如果您确实需要将元组编码为列表类型,则可以这样做:
defmodule TupleEncoder do
alias Jason.Encoder
defimpl Encoder, for: Tuple do
def encode(data, options) when is_tuple(data) do
data
|> Tuple.to_list()
|> Encoder.List.encode(options)
end
end
end
Run Code Online (Sandbox Code Playgroud)
您应该能够根据需要使用类似的模式将其转换为另一种原始结构。
查看有关如何实现该encode/2功能的文档:https : //hexdocs.pm/jason/Jason.Encoder.html
作为实现的一部分,您需要决定如何对元组进行编码,因为它在 JSON 中没有类似物。数组可能是最简单的选择,所以你可以这样做mytuple |> Tuple.to_list
| 归档时间: |
|
| 查看次数: |
2367 次 |
| 最近记录: |