我正在编写一个新的postgreSQL数据库的函数,我正试图循环嵌套结构。
使用新的JSON功能是否可行? 我想要做的是在下面:
DO
$BODY$
DECLARE
omgjson json := '[{ "type": false }, { "type": "photo" }, {"type": "comment" }]';
i record;
BEGIN
FOR i IN SELECT * FROM json_array_elements(omgjson)
LOOP
RAISE NOTICE 'output from space %', i;
END LOOP;
END;
$BODY$ language plpgsql
这会返回一组记录(文本!),而不是JSON!所以我不能像i->>'type'
一样查询它,但这正是我想要完成的......
答案 0 :(得分:44)
我有点笨,但postgresql网站上关于这个json功能的文档实际上是最小的
解决问题我所做的就是
DO
$BODY$
DECLARE
omgjson json := '[{ "type": false }, { "type": "photo" }, {"type": "comment" }]';
i json;
BEGIN
FOR i IN SELECT * FROM json_array_elements(omgjson)
LOOP
RAISE NOTICE 'output from space %', i->>'type';
END LOOP;
END;
$BODY$ language plpgsql