You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 13中如何查询嵌套JSON数组元素?

解决PostgreSQL 13中JSON嵌套数组的结构化查询问题

你的原查询问题在于硬编码了数组索引(-> 0、-> 1),只能手动指定获取固定位置的Rows元素,没法自动遍历所有嵌套记录,且重复定义列名也会导致结果混乱。要实现每行对应一条嵌套数组记录的结构化输出,需要用PostgreSQL的JSON数组展开函数处理:

正确查询语句

SELECT
  (row -> 'Values' ->> 0) AS Lid,
  (row -> 'Values' ->> 1) AS L2LicenseId
FROM test,
     json_array_elements(json_data::json -> 'Rows') AS row;

代码说明

  • json_array_elements(json_data::json -> 'Rows'):将Rows对应的JSON数组展开为单行记录,每个row代表数组里的单个对象(如{"Values": [...]})。
  • row -> 'Values' ->> 0:从每个展开的row对象中,提取Values数组的第1个元素(索引从0开始)作为Lid,->>会将JSON值转换为文本类型;同理提取第2个元素作为L2LicenseId。

执行该查询后,会得到两行结果,每行对应一条嵌套的License记录,完全匹配你预期的结构化输出。

内容的提问来源于stack exchange,提问作者Vikas J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:31:17