gpt4 book ai didi

json - Elixir - 从 2 个集合创建 JSON 对象

转载 作者:行者123 更新时间:2023-11-29 11:27:34 24 4
gpt4 key购买 nike

我正在使用 Postgrex在 Elixir 中,当它返回查询结果时,它以以下结构格式返回它们:

%{columns: ["id", "email", "name"], command: :select, num_rows: 2, rows: [{1, "me@me.com", "Bobbly Long"}, {6, "email@tts.me", "Woll Smoth"}]}

应该注意的是,我在没有 Ecto 的情况下直接使用 Postgrex。

列(表头)作为集合返回,但结果(行)作为元组列表返回。 (这看起来很奇怪,因为它们可能会变得非常大)。

我正在尝试找到以编程方式为每个结果创建 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)

这将生成一个 json 对象列表,其中结果集中的每一行都是一个 json 对象。

关于json - Elixir - 从 2 个集合创建 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com