我将以下JSON数组存储在一行中:
{
"openings": [
{
"visibleFormData": {
"productName": "test"
}
}
]
}
我正在尝试获取productName
的值。到目前为止,我已经尝试过这样的事情:
SELECT tbl.column->'openings'->'0'->'visibleFormData'->>'productName'
从理论上讲,这将获取openings
数组中的第一个对象(索引0),然后从该对象的productName
对象中获取visibleFormData
属性。
我得到的只是空值。我已经尝试了多种配置。我认为这与索引0的获取有关,但我不确定。我不是普通的PSQL用户,因此调试起来有点棘手。
答案 0 :(得分:1)
json数组索引为integer
,因此请使用0
而不是'0'
:
with tbl(col) as (
values
('{
"openings": [
{
"visibleFormData": {
"productName": "test"
}
}
]
}'::jsonb)
)
SELECT tbl.col->'openings'->0->'visibleFormData'->>'productName'
FROM tbl
?column?
----------
test
(1 row)