gpt4 book ai didi

json - PostgreSQL。 json_object_agg() 返回文本字符串而不是 json 对象

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

如上所写here , json_object_agg(name, value) 返回类型为 json。同时,如果我从存储过程中返回 json_object_agg() 返回的值:

CREATE OR REPLACE FUNCTION _getlocales()

RETURNS json AS
$BODY$DECLARE
var json;
BEGIN
select into var json_object_agg("key", "values") from table;
RETURN var;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

然后在另一个函数中调用它:

variable    =   _getlocales();    
RAISE NOTICE 'DATA TYPE %', pg_typeof(variable);
SELECT variable->>'property'

我无法获取 JSON 对象字段。我遇到了:

ERROR: operator does not exist: text ->> unknown

并且引发的通知显示数据类型是文本

NOTICE: DATA TYPE text

我试图将 _getlocales() 返回类型更改为 jsonb,但没有任何改变:

CREATE OR REPLACE FUNCTION nav._getlocales()
RETURNS jsonb AS
$BODY$DECLARE
_l18nJson jsonb;
...

为什么会这样?

最佳答案

@Richard Huxton 为我指明了正确的方向,我当时注意力不集中,我已经用 text 数据类型声明了 variable。所以,我改变了:

$BODY$DECLARE
variable text;

收件人:

$BODY$DECLARE
variable json;

然后问题就解决了。

关于json - PostgreSQL。 json_object_agg() 返回文本字符串而不是 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620555/

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