Как запросить конкретный объект из массива json в PostgreSQL - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть таблица с именем flow_flowrun и массив объектов json в столбце под названием EVENTS, например:

[{"msg": {"urn": "tel:+1238948372", "text": "Would you like to JOIN, reply now", "uuid": "34567a-a634-4c1d-a0a5-56788", "channel": {"name": "*56789", "uuid": "b5bc6e6c-ad18-493f-b28f-744627e739f7"}}, "type": "msg_created", "step_uuid": "a4fg6hh-9419-43a4-tgdv-39a4edc78d69", "created_on": "2015-09-21T06:10:12.217880+00:00"}]

[{"msg": {"urn": "tel:+1294472830", "text": "Hello, how do you feel today", "uuid": "533457-693d-4d67-833c-0d53e7e0ff98", "channel": {"name": "*12345", "uuid": "b5bc6e6c-ad18-493f-b28f-744627e739f7"}}, "type": "msg_created", "step_uuid": "4556763-1f5b-40a4-a29d-5fb1103f4666", "created_on": "2014-02-08T06:04:57.823739+00:00"}]

Я бынравится запускать запрос, который показывает только текстовый вывод.Таким образом, результат должен выглядеть следующим образом:

Сообщения Хотите присоединиться, ответить сейчас Привет, как вы себя чувствуете сегодня

и так далее ...

I 'Мы безуспешно попробовали следующее:

SELECT jsonb_array_elements(fr.events->'msg'->'text') elem
FROM flows_flowrun fr 
SELECT fr.EVENTS ->>'text'
from flows_flowrun fr

Спасибо в ожидании.

Когда я выполняю вышеуказанные запросы, я не получаю результатов.

1 Ответ

0 голосов
/ 09 апреля 2019

Сначала вам нужно будет расширить массив и получить доступ к членам:

SELECT jsonb_array_elements(events)->'msg'->>'text'
  FROM flows_flowrun fr
...