为什么80%的码农都做不了架构师?>>>   

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

表结构如下:

pgsql=# \d test资料表 "pgsql.test"栏位 |  型别   | 修饰词
------+---------+--------id   | integer | 非空info | jsonb   | 非空
索引:"test_pkey" PRIMARY KEY, btree (id)"test_info_idx" gin (info)

SELECT的格式化输出:

pgsql=# select id,replace(replace(regexp_replace(info::text , ', "' , concat(',',chr(10),chr(9),'"'),'g') ,'{' , concat('{',chr(10),chr(9))) ,'}' , concat(chr(10),'}')) as info from test;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": "Angela Barton",                             +|         "tags": ["enim",                                     +|         "aliquip",                                           +|         "qui"],                                              +|         "address": "178 Howard Place, Gulf, Washington, 702",+|         "company": "Magnafone",                              +|         "latitude": 19.793713,                               +|         "is_active": true,                                   +|         "longitude": 86.513373,                              +|         "registered": "2009-11-07T08:53:22 +08:00"           +| }
(3 行记录

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

create function format_json(text) returns text as $$
select replace(replace(regexp_replace($1 , ', "' , concat(',',chr(10),chr(9),'"'),'g'),
'{' , concat('{',chr(10),chr(9))) ,'}' , concat(chr(10),'}')) as json_s;
$$ language sql;

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

pgsql=# select id,format_json(info::text) as info from test where id=3;id |                             info
----+---------------------------------------------------------------3 | {                                                            +|         "guid": "9c36adc1-7fb5-4d5b-83b4-90356a46061a",      +|         "name": "Angela Barton",                             +|         "tags": ["enim",                                     +|         "aliquip",                                           +|         "qui"],                                              +|         "address": "178 Howard Place, Gulf, Washington, 702",+|         "company": "Magnafone",                              +|         "latitude": 19.793713,                               +|         "is_active": true,                                   +|         "longitude": 86.513373,                              +|         "registered": "2009-11-07T08:53:22 +08:00"           +| }
(1 行记录)

转载于:https://my.oschina.net/cytan/blog/542100

在PostgreSQL命令行psql里格式化输出json字段相关推荐

  1. mysql命令行执行时不输出列名(字段名)

    -N 即可 如:mysql -N -e "select * from test" 摘自:http://blog.csdn.net/eroswang/article/details/ ...

  2. jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国

    我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用.-- Ostechnix J ...

  3. linux服务器返回json,Linux 命令行工具解析和格式化输出 JSON的方法

    JSON 是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于人类理解 -- 当然,如果格式正确的话.JSON 这个词代表 J ava S cript O bject N otat ...

  4. Shell Scipt 命令行带参数,输出log

    Shell Scipt 命令行带参数,输出log 命令行带参数,以及字符串参数放到ssh命令里可以这么放: #!/bin/bash        这行保证运行bash可以这样: ./data.sh i ...

  5. git diff 左侧显示行号(格式化输出)

    文章目录 1.问题描述 2.环境 3.效果 4.实现 1.问题描述 我用git diff命令查看代码做了哪些修改时,发现显示的排版不符合我的预期,我希望能在排版左边显示删改的具体行号,且不同的文件的修 ...

  6. prettier 命令行工具来格式化多个文件

    prettier 命令行工具来格式化多个文件 你可以使用 prettier 命令行工具来格式化多个文件.以下是一个使用命令行批量格式化文件的示例: 安装 prettier 如果你还没有安装 prett ...

  7. 如何复制计算机页面,怎么把电脑命令行窗口里的内容复制到剪贴板

    想要把电脑命令行窗口里的内容复制到剪贴板,该如何操作呢,那么怎么把电脑命令行窗口里的内容复制到剪贴板的呢?下面是学习啦小编收集整理的怎么把电脑命令行窗口里的内容复制到剪贴板,希望对大家有帮助~~ 把电 ...

  8. Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

    转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...

  9. linux命令下jq的用法(curl 格式化输出json 字符串)

    文章目录 一.什么是jq命令 1. jq安装 2. jq命令的格式 从json文件 对象数组中取出一组特定的属性的值 从json文件 对象数组中取出一组特定的属性的值,并排除null值 格式化输出js ...

最新文章

  1. python3.6 在 windows10 下使用pycrypto
  2. 博客搬家了--这次搬进自己家的了,不过博客园的会定时更新!新家地址: http://blog.woshimaijia.com/...
  3. python假设检验平均_Python|Excel|SPSS|R|Stata|Eviews统计数据假设检验T|F|卡方检验
  4. Android 侧滑多层view显示
  5. c/c++笔试面试题(4)
  6. 代码敲慢一点,学得会快一点
  7. Moodl:集成密码,消除错误phpCAS error: phpCAS::client(): type mismatched for parameter $se
  8. 我的世界服务器拔刀修复,我的世界拔刀剑怎么修复
  9. linux top功能,[每日一题]说说Linux top命令的功能和用法
  10. run (牛客多校第二场)计数DP
  11. java课程设计---彩票销售管理系统
  12. 基于Qt的Littlevgl移植(Windos10)
  13. 《大数据时代》读书笔记-思维导图
  14. java 根据pdf模板表单生成对应pdf(用于荣誉证书等生成)
  15. 为什么有时优盘是只读模式_u盘怎么解除只读模式
  16. HTML5期末大作业:游戏网站——网络游戏官网(悦世界) 6个页面 HTML+CSS+JavaScript ~ ~ 学生HTML个人网页作业作品下载...
  17. python 二进制Plist文件转Xml格式Plist
  18. 使用SignTool对软件安装包进行数字签名
  19. 博弈树搜索技术(Minimax算法,ɑ-β 算法)
  20. 教你用TensorFlow实现VGGNet

热门文章

  1. codevs 1047 邮票面值设计
  2. Zabbix监控环境的搭建
  3. 【备份恢复】Oracle 数据备份与恢复微实践
  4. SQL提取表中某列字符长度为2的所有记录
  5. 去除linux控制台光标
  6. ITSM为人服务,还是人为ITSM服务?
  7. linux用户管理类常用命令:
  8. 2021高考查询成绩公众号,2021高考成绩怎么查 什么时候查
  9. shell脚本——实现简单的功能
  10. 函数 —— strchr() 例如:字符串中的 192.168.1.2|00:11:22:33:44:55 取出字符串中的ip与mac值