How-to loop over JSON Arrays в postgresql 9.3

Я пишу функцию для нового db 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

Я был немного тупым, но документация по этой функции json на веб-сайте postgresql фактически минимальна

для решения проблемы все, что я сделал, было

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