在PostgreSQL命令行psql里格式化输出json字段

在PostgreSQL命令行psql里格式化输出json字段,第1张

概述在pgsql的psql命令里直接select输出json字段是一长串字符,这对阅读非常不友好,查了好久也没查到pgsql有格式化输出json字段的函数,只好折腾一番。 表结构如下: pgsql=# \d test   资料表 "pgsql.test" 栏位 |  型别   | 修饰词 ------+---------+-------- id   | integer | 非空 info |

在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(,'}'))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字段所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1175010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存