使用 PostgreSQL 语法将 JSON 数组解析成三列内容

假设要将该数组解析成三列,分别为'类别'、'分数'和'描述',则可以使用 PostgreSQL 中的 json_to_recordset 函数和 jsonb_populate_record 函数,实现如下:

SELECT 
    (jsonb_populate_record(NULL::my_table, j)).*
FROM 
    json_to_recordset('[{"行业":100.0},{"技术":100.0},{"政策":90.0}]') AS j("类别" text, "分数" numeric);

其中,my_table 为自定义表名,可以根据实际情况修改。执行上述语句后,将得到解析后的三列数据,如下:

 类别 | 分数 |  描述  
------+------+--------
 行业 |  100 |        
 技术 |  100 |        
 政策 |   90 |        

代码解释:

  • json_to_recordset() 函数将 JSON 数组解析成一个记录集,每条记录对应数组中的一个元素。
  • jsonb_populate_record() 函数将一个 JSON 对象填充到一个记录结构中,并返回填充后的记录。
  • NULL::my_table 用于创建一个匿名记录,并将 JSON 对象填充到该记录中。
  • j("类别" text, "分数" numeric) 为记录集的别名,并指定了记录的列名和数据类型。

注意:

  • JSON 数组中的元素需要是键值对形式。
  • 您可以根据实际需要修改列名和数据类型。
PostgreSQL JSON 数组解析成三列数据

原文地址: https://www.cveoy.top/t/topic/lOkO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录