我们如何将 json 列表转换为 postgres 中的行?

千里眼

我有一个返回 json 列表的查询:

 select type.value -> 'components' as json_data
   from manifests m left join
        jsonb_array_elements(m.json_data->'type') as type on true   

这将返回以下数据

[{"name": "xxx", "version": "1.1"}, {"name": "xxx2", "version": "1.2"}]

如果我将它用作文本,我可以进一步进行:

 select *
   from jsonb_array_elements(
  '[{"name": "xxx", "version": "1.1"}, {"name": "xxx2", "version": "1.2"}]' ) 

 {"name": "xxx", "version": "1.1"}
 {"name": "xxx2", "version": "1.2"}

但是我如何使用第一个查询达到相同的目的?我无法使用子查询使其工作

更新:我的原始数据如下所示:

{
    "lastUpdated": 1569393969656,
    "type": [
        {
            "components": [
                {
                    "name": "xxx",
                    "version": "1.1"
                },
                {
                    "name": "xxx2",
                    "version": "1.2"
                }
            ],
            "description": "xxx"
        }
    ]
}

谢谢

巴巴罗斯·欧占

您可以jsonb_array_elements()两次应用功能:

select jsonb_array_elements(elm) as json_data 
  from
  (
   select jsonb_array_elements(json_data -> 'type') -> 'components' as elm 
     from manifests ) q

能够在子查询中提取相关的数组元素。

Demo

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将JSON数组转换为Postgres中的行

如何将postgres json列表转换为所有小写的postgres数组

使用Postgres将列表邻接表转换为JSON图

如何将 json 转换为 Python 中的列表?

我们如何将 azure 数据工厂中的时区转换为指定的时区

无法将JSON列表转换为Flutter中的照片列表

Postgres 如何将字段转换为 json 数组

如何将 JSON 数据从 postgres 转换为不同的格式

如何在Postgres 9.3中将json数组转换为postgres int数组

我们如何将Java中的反应式JDBC调用转换为Scala中的Future?

如何将 json 数组转换为 postgresql 中的行

我们如何遍历所有由 JSON 数据组成的 URL,将每个 URL 转换为数据帧,并将每个 URL 保存到单独的 CSV 文件中?

postgres 将 json 数组转换为列

Postgres将Varchar []转换为JSON

我们如何将列表列表转换为地图?(长生不老药)

将JSON转换为Javascript中的地图列表

将子弹列表转换为Javascript中的json

将数据类(JSON对象)转换为Kotlin中的列表

使用python将列表中的字典转换为JSON格式

如何将JSON列表转换为CSV文件中的两个不同列?

如何将JSON转换为可用于绑定下拉列表中的值的数组?

如何将JSON转换为JavaScript中的数组以获取li列表

如何将下面的json字符串转换为C#中的对象列表

如何将 json 转换为 c# 中的模型列表?

我们如何将simTime()转换为毫秒?

将列表转换为JSON

如何获取列表中的项目并将其转换为json

我们如何将json发送到控制器并基于Java中的密钥进行迭代?

我们如何将列表转换为数据框?