Postgre SQL   发布时间:2022-05-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在PostgreSQL命令行psql里格式化输出json字段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在pgsql的psql命令里直接select输出Json字段是一长串字符,这对阅读非常不友好,查了好久也没查到pgsql有格式化输出Json字段的函数,只好折腾一番。

表结构如下:

pgsql=#\dtest
资料表"pgsql.test"
栏位|型别|修饰词
------+---------+--------
ID|integer|非空
info|Jsonb|非空
索引:
"test_pkey"PRIMARYKEY,btree(ID)
"test_info_IDx"gin(info)

SELECT的格式化输出:

pgsql=#selectID,replace(
replace(
regexp_replace(info::text,',"',concat(',chr(10),chr(9),'"'),'g'),'{',concat('{',chr(9))),'}',concat(chr(10),'}'))asinfofromtest;
ID|info
----+---------------------------------------------------------------
1|{+
|"a":[1,2,3],+
|"b":[4,5,6]+
|}
2|{+
|"a":[7,8,9],+
|"b":[10,11,12]+
|}
3|{+
|"guID":"9c36adc1-7fb5-4d5b-83b4-90356a46061a",+
|"name":"Angelabarton",+
|"Tags":["enim",+
|"aliquip",+
|"qui"],+
|"address":"178Howardplace,Gulf,Washington,702",+
|"company":"Magnafone",+
|"latitude":19.793713,+
|"is_active":true,+
|"longitude":86.513373,+
|"registered":"2009-11-07T08:53:22+08:00"+
|}
(3行记录

为了方便今后每次调用,写成函数:

createfunctionformat_Json(text)returnstextas$$
selectreplace(replace(regexp_replace($1,'}'))asJson_s;
$$languagesql;

这样看起来就简洁直观多了:

pgsql=#selectID,format_Json(info::text)asinfofromtestwhereID=3;
ID|info
----+---------------------------------------------------------------
3|{+
|"guID":"9c36adc1-7fb5-4d5b-83b4-90356a46061a",+
|"registered":"2009-11-07T08:53:22+08:00"+
|}
(1行记录)

大佬总结

以上是大佬教程为你收集整理的在PostgreSQL命令行psql里格式化输出json字段全部内容,希望文章能够帮你解决在PostgreSQL命令行psql里格式化输出json字段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: