postgresql - 如何访问 jsonb postgresql 中的键值?
问题描述
{
"data": {
"val": "{\"cell_number\": \"123\"}"
}
}
我想在 data -> val -> cell_number 中获取值,即'123'。有没有办法在 postgresql 中做到这一点?
解决方案
如果这不是一个错字,并且您在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)
第一步让你找到val
关键。该结果必须作为text
(因此是->>
)返回,然后强制转换为,jsonb
以便cell_number
可以取消引用。
推荐阅读
- python - 动态创建和命名 Spark DF
- java - 为什么我的输出文件向后打印付款信息?
- vue-router - 使用命名路由器链接时未捕获的错误缺少参数
- google-sheets - 在查询结果中添加可变文本(连续小写字母)
- java - 粘贴不同样式的文本时,TextView 和 EditText 不支持
- r - R中的可变长度不同
- design-patterns - 中介者模式 - 关于同事的问题
- javascript - {{> afQuickField name='locationType' Optionvalue="locationType"}}
- r - 如何列出包中的所有 R Markdown 模板?
- matlab - 将字符串数组拆分为数字矩阵