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

PostgreSQL中如何拼接指定JSON键值将JSON转换为字符串

在PostgreSQL中将JSON数组转换为指定格式字符串的实现方法

直接处理JSON字面量的SQL语句

如果你的JSON是字面量形式,可以用以下语句直接转换:

SELECT 
  CONCAT(
    string_agg(obj->>'name', '-'),
    ' ',
    string_agg(obj->>'strength', '-')
  ) AS formatted_result
FROM jsonb_array_elements('[{"name": "X", "strength": "10"}, {"name": "Y", "strength": "30"}]'::jsonb) AS obj;

处理表中JSON字段的情况

如果JSON数据存储在表的字段中(比如表character_stats有stats_data字段),可以调整为:

SELECT 
  CONCAT(
    string_agg(obj->>'name', '-'),
    ' ',
    string_agg(obj->>'strength', '-')
  ) AS formatted_result
FROM character_stats,
     jsonb_array_elements(stats_data::jsonb) AS obj;

关键函数说明

  • jsonb_array_elements:将JSON数组拆分为多行独立的JSON对象(如果你的字段是json类型而非jsonb,替换为json_array_elements即可)
  • obj->>'name':从JSON对象中提取name字段的文本值(->>运算符会返回不带引号的纯文本,避免后续拼接出现多余引号)
  • string_agg(col, '-'):将多行的字段值用-连接成单个字符串,分别处理name和strength列
  • CONCAT():将两个连接后的字符串用空格拼接,得到最终的目标格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:10:31