83人参与 • 2026-05-14 • Javascript
接口同步会涉及到增加或减少字段,每次增减都要改代码太麻烦,如果直接通过pg的函数生成报文json字符串,这样只需要改函数就可以了
把查询的一行数据直接变成一个 json 对象
-- 示例:用户表单行转 json select row_to_json(users) from users where id = 1;
结果:
{"id":1,"name":"张三","age":25,"email":"zhangsan@test.com"}2. json_build_object:自定义键名转 json
手动指定 json 的键 (key)和值 (value),灵活可控
-- 自定义键名,只返回需要的字段
select
json_build_object(
'userid', id,
'username', name,
'userage', age
) as user_json
from users
where id = 1;结果:
{"userid":1,"username":"张三","userage":25}把多行结果打包成json 数组字符串
-- 所有用户转 json 数组
select json_agg(users) from users;
-- 只筛选指定字段转数组
select json_agg(
json_build_object('id',id,'name',name)
) from users where age > 20;结果:
[{"id":1,"name":"张三"},{"id":2,"name":"李四"}]把普通 postgresql 数组转 json 数组
select array_to_json(array[1,2,3,4]); -- [1,2,3,4] select array_to_json(array['苹果','香蕉']); -- ["苹果","香蕉"]
select json_build_object(
'code', 200,
'msg', 'success',
'data', json_build_object(
'user', row_to_json(users),
'createtime', now()
)
) from users where id = 1;结果:
{
"code":200,
"msg":"success",
"data":{
"user":{"id":1,"name":"张三","age":25},
"createtime":"2025-05-20 10:00:00"
}
}select json_build_object( 'total', 2, 'list', json_agg(users) ) from users;
默认返回的是 json/jsonb 类型,如果你需要纯文本字符串,用 ::text 强转:
-- 输出标准 json 字符串 select row_to_json(users)::text from users where id = 1;
复杂的json数据就需要自己摸索了
所有函数都是 postgresql 内置,无需安装扩展,直接使用
到此这篇关于postgresql生成json字符串的方法汇总的文章就介绍到这了,更多相关postgresql生成json字符串内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论