elixir - Elixir Jason 用元组编码结构
问题描述
我有一个结构,@derive Jason.Encoder
但该结构中的某些字段是元组,因此无法对结构进行编码,我该如何解决:/
更新
我已经使用下面提到的方法来实现协议。关于这种方法需要注意的一件重要事情是它会改变整个项目的编码,请小心!
解决方案
如果您确实需要将元组编码为列表类型,则可以使用:
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
您应该能够根据需要使用类似的模式将其转换为另一个原始结构。
推荐阅读
- javascript - react-bootstrap-table - 具有自己数据的列(不是来自数据集)
- c++ - 向量的高效移动
- ios - 带有动态高度单元格和动态内容swift 4的tableview单元格内的Collectionview
- javascript - 如何在javascript中舍入十进制结果
- python - 将 Ubuntu 16.04 连接到同一域中的远程 MSSQL 服务器
- javascript - 在axios成功内调用mapDispatchToProps不起作用
- ios - 将表格视图添加到滚动视图,并在将单元格添加到表格视图时让滚动视图的高度不断增长
- javascript - Highchart heatmap for days in a month from 8:00 to 17:00
- angular - 如何使用 Typescript 中的空格在表中搜索多个值?
- javascript - 对 three.js 场景使用 div 和 canvas 元素有什么区别?