Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问jsonb postgresql中的键值?_Postgresql - Fatal编程技术网

如何访问jsonb postgresql中的键值?

如何访问jsonb postgresql中的键值?,postgresql,Postgresql,我想在data->val->cell_number中获取值,即'123'。在postgresql中是否有这样做的方法?如果这不是一个输入错误,并且您在val键下放置了一个字符串化的json对象,那么这将为您解开它: { "data": { "val": "{\"cell_number\": \"123\"}" } } 第一步是按下val键。该结果必须以文本(因此是

我想在data->val->cell_number中获取值,即'123'。在postgresql中是否有这样做的方法?

如果这不是一个输入错误,并且您在
val
键下放置了一个字符串化的json对象,那么这将为您解开它:

{
    "data": {
        "val": "{\"cell_number\": \"123\"}"
    }
}

第一步是按下
val
键。该结果必须以
文本
(因此是
->
)的形式返回,然后转换为
jsonb
,以便可以取消对
单元格编号的引用。

真的是这样吗?在
val
键处有一个转义的JSON对象?
with invar as (
  select '{
    "data": {
        "val": "{\"cell_number\": \"123\"}"
    }
}'::jsonb as jsonb_col
)
select ((jsonb_col->'data'->>'val')::jsonb)->>'cell_number' from invar;

 ?column? 
----------
 123
(1 row)