PostgreSQL | Как прочитать значение из JSON-объекта по ключу? — efim360.ru

PostgreSQL | Как прочитать значение из JSON-объекта по ключу?

У нас есть таблица в PostgreSQL с JSON-объектами в одном столбце:

Таблица с JSON-объектами в PostgreSQL
Таблица с JSON-объектами в PostgreSQL

Нам нужно получить значение "www.efim360" из ключа "d". Как это сделать? Как дотянуться до этого значения?

 

Давайте сначала отберём одну запись, в которой есть искомое нами значение и получим значение по одному столбцу:

SELECT jsonsdr FROM a.t_sdr WHERE id = 2;
Получили значение ячейки с JSON-объектом в PostgreSQL
Получили значение ячейки с JSON-объектом в PostgreSQL

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

  • -> (ДЕФИС + ПРАВАЯ УГЛОВАЯ СКОБКА)
  • ->> (ДЕФИС + ПРАВАЯ УГЛОВАЯ СКОБКА + ПРАВАЯ УГЛОВАЯ СКОБКА)

Выполняем обращение к ключу "d":

SELECT jsonsdr -> 'd' FROM a.t_sdr WHERE id = 2; -- как JSON-объект
Вытащили значение по ключу из JSON-объекта как JSON-объект - PostgreSQL
Вытащили значение по ключу из JSON-объекта как JSON-объект - PostgreSQL

 

SELECT jsonsdr ->> 'd' FROM a.t_sdr WHERE id = 2; -- как СТРОКА
Вытащили значение по ключу из JSON-объекта как СТРОКУ - PostgreSQL
Вытащили значение по ключу из JSON-объекта как СТРОКУ - PostgreSQL

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdmin - https://www.pgadmin.org

Официальный сайт СУБД PostgreSQL - https://www.postgresql.org

Раздел "8.14. Типы JSON" - https://postgrespro.ru/docs/postgresql/14/datatype-json