Rob*_*son 5 postgresql json tuples elixir
我在Elixir中使用Postgrex,当它返回查询结果时,它以下面的struct格式返回它们:
%{columns: ["id", "email", "name"], command: :select, num_rows: 2, rows: [{1, "me@me.com", "Bobbly Long"}, {6, "email@tts.me", "Woll Smoth"}]}
Run Code Online (Sandbox Code Playgroud)
应该注意我直接使用Postgrex而没有Ecto.
列(表头)作为集合返回,但结果(行)作为元组列表返回.(这看起来很奇怪,因为它们可能变得非常大).
我正在尝试找到以编程方式为每个结果创建JSON对象的最佳方法,其中JSON键是列标题,JSON值是元组中的相应值.
我尝试从两者创建地图,合并然后序列化到JSON对象,但似乎应该有一个更容易/更好的方法来做到这一点.
以前有人处理过这个吗?从单独的集合和元组创建JSON对象的最佳方法是什么?
这样的事情应该有效:
result = Postgrex.query!(...)
Enum.map(result.rows, fn row ->
Enum.zip(result.columns, Tuple.to_list(row))
|> Enum.into(%{})
|> JSON.encode
end)
Run Code Online (Sandbox Code Playgroud)
这将生成一个json对象列表,其中resultset中的每一行都是一个json对象.
归档时间: |
|
查看次数: |
555 次 |
最近记录: |