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

标签 json postgresql postgresql-json

如上所写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/

相关文章:

java - 使用Java API TransmissionWithRecipientArray对象,如何设置像键值数组这样的元素(Sparkpost)

java - Spring 忽略我的 ContentNegotiatingViewResolver

javascript - Highcharts - JSON 系列数据未正确显示

database - 在PostgreSQL中联接两个表,其中一个内容为Array字段,另一个为该数组的主表

postgresql - 将列转置为行 - postgres

ruby-on-rails - 在 Postgresql JSON 数据列上区分

json - 在 PostgreSQL 9.3 中的 json 字段的嵌套属性上创建索引的多种方法

javascript - Mongoose 中递归、返回问题中的 Promise

用 ddply 或 ply-family 函数的创造性使用替换 R 循环

arrays - postgres + json 对象到数组