在 postgres 中访问 json 对象会抛出错误

Accessing jsonb object in postgress throws error

我有一个名为 "junaid" 的 table,它有一个类型为 "jsonb" 的列 "connections"。

create table junaid (
   connection jsonb
}  

"connections" 列中的值为对象数组。

conections = [{"name":"abc", "age":123},{"name":"xyz", "age":222}]

我有一个存储过程来访问这些值。

CREATE OR REPLACE FUNCTION test() RETURNS INTEGER AS $$
DECLARE   
myconnection jsonb;
i jsonb;
BEGIN
    select connections into myconnection from junaid;


    FOR i IN SELECT * FROM jsonb_array_elements(myconnection)
    LOOP
        RAISE NOTICE 'output from space %', i->>’name’;
    END LOOP;
    return 0;
EXCEPTION WHEN others THEN
    return 1;
END;
$$ LANGUAGE plpgsql;

当我 运行 存储过程时,我得到这个错误:

column "’name’" does not exist

您使用了错误的引号字符。除了反引号或正向引号或其他任何东西,您也应该使用 单引号字符 作为键名,因为您似乎正在使用格式字符串。 IE。应该是 i->>'name'.

P.S。 SO 语法高亮显示有些可疑的事情正在发生...