如何在postgresql 9.3中循环遍历JSON数组

时间:2013-11-28 18:22:00

标签: json postgresql

我正在编写一个新的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'一样查询它,但这正是我想要完成的......

1 个答案:

答案 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