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