gpt4 book ai didi

json - json_each 的 postgres 逆

转载 作者:行者123 更新时间:2023-11-29 12:13:13 25 4
gpt4 key购买 nike

我的字段中没有 json 文本。我有一行包含 "text","format","keyname","..." 列,我想以 '{"value of keyname 格式将其导出到 json列”:{“文本”:“文本的值”,“格式”:“格式的值”,...}}'。这在 postgresql 中可能吗?

我一直在查看 postgis2geojson 示例并了解了 row_to_json 函数。 http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html

此外,我一直在查看 postgres json 文档:http://www.postgresql.org/docs/9.3/static/functions-json.html

不幸的是,我没有找到明确满足我的需求的功能,但是 json_each 只是在相反的方向上做我想要的。通常,我认为postgres中的json函数是基于只能将列名用作键的假设来设计的。我对吗?我可以使用 SQL hack 来解决这个问题吗?感谢您的帮助。

编辑:

select '"'||keyname||'":"'||row_to_json((select r from(Select text, format,
(select username from my.users where users.id = table.uid) as username,
machinename ) as r ))||'"'
from my.table where id = 1;

最佳答案

从 9.4 版本开始,postgres 有了 json_object_agg 函数,它是 json_each 的逆函数。您可以阅读文档 here .

如果数据是这样的:

> select * from example;
text | format | keyname
------+--------+---------
foo | bar | a
dead | beef | b
(2 rows)

然后您可以使用以下查询将所有这些聚合到一个具有键 ab 的对象中:

> select json_object_agg(keyname, json_build_object('text', text, 'format', format)) from example;
json_object_agg
------------------------------------------------------------------------------------------
{ "a" : {"text" : "foo", "format" : "bar"}, "b" : {"text" : "dead", "format" : "beef"} }
(1 row)

关于json - json_each 的 postgres 逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069143/

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