嵌套json字符串数组

时间:2019-12-10 15:40:57

标签: sql arrays json postgresql

我正在使用psql,并且有一个如下表:

id | dashboard_settings
-----------------------
 1 | {"query": {"year_end": 2018, "year_start": 2015, "category": ["123"]}}

有很多行,但是对于每一行,“类别”值是一个带有一个整数(字符串格式)的数组。

是否可以“解包”类别对象?这样它只有123个整数?

我已经尝试过了,但是没有成功:

SELECT jsonb_extract_path_text(dashboard_settings->'query', 'category') from table

这将返回:

jsonb_extract_path_text | ["123"]

我想要的时间:

jsonb_extract_path_text | 123

2 个答案:

答案 0 :(得分:1)

考虑:

select dashboard_settings->'query'->'category'->>0 c from mytable

Demo on DB Fiddle

| c   |
| :-- |
| 123 |

答案 1 :(得分:1)

您需要使用数组访问运算符,该运算符仅需->>后跟数组索引:

select jsonb_extract_path(dashboard_settings->'query', 'category') ->> 0
from the_table

或者:

select dashboard_settings -> 'query' -> 'category' ->> 0
from the_table