hopeless-dream

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Linux 中 json 格式化工具 jq

安装

jq属于epel源,所以需要安装epel

[root@master kubernetes]# yum install -y epel-release

安装工具

[root@master kubernetes]# yum install -y jq

测试使用

测试数据

[root@master ~]# vim test
{ "name":"Tom", "age":18, "gender":"male", "phone":["110"], "speciality":null }
{ "name":"Jerry", "age":16, "gender":"female", "phone":null,"speciality":["eat","sleep"] }

使用方法

1、普通转换:相当于解析根节点 "."

复制代码
[root@master ~]# jq < test
{
  "name": "Tom",
  "age": 18,
  "gender": "male",
  "phone": [
    "110"
  ],
  "speciality": null
}
{
  "name": "Jerry",
  "age": 16,
  "gender": "female",
  "phone": null,
  "speciality": [
    "eat",
    "sleep"
  ]
}
复制代码

也可以写根节点

复制代码
[root@master ~]# jq . < test
{
  "name": "Tom",
  "age": 18,
  "gender": "male",
  "phone": [
    "110"
  ],
  "speciality": null
}
{
  "name": "Jerry",
  "age": 16,
  "gender": "female",
  "phone": null,
  "speciality": [
    "eat",
    "sleep"
  ]
}
复制代码

2、解析属性

[root@master ~]# jq .age < test
18
16

 

[root@master ~]# jq .name < test
"Tom"
"Jerry"

3、解析多个属性

复制代码
[root@master ~]# jq '[.name,.age,.speciality]' < test
[
  "Tom",
  18,
  [
    "sleep",
    "read"
  ]
]
[
  "Jerry",
  16,
  [
    "eat",
    "sleep"
  ]
]
复制代码

4、测试解析列表索引

修改测试数据

[root@master ~]# vim test
{ "name":"Tom", "age":18, "gender":"male", "phone":["110"], "speciality":["sleep","read"] }
{ "name":"Jerry", "age":16, "gender":"female", "phone":null, "speciality":["eat","sleep"] }

解析

[root@master ~]# jq '.speciality[0]' < test
"sleep"
"eat"

[root@master ~]# jq '.speciality[1]' < test
"read"
"sleep"

负索引解析

[root@master ~]# jq '.speciality[-1]' < test
"read"
"sleep"

 

5、使用制表符处理结果数据

[root@master ~]# jq '[.name,.age,.speciality[0]] | @tsv'  < test
"Tom\t18\tsleep"
"Jerry\t16\teat"

可以去除制表符

[root@master ~]# jq '[.name,.age,.speciality[0]] | @tsv'  < test|sed 's/\\t/,/g'
"Tom,18,sleep"
"Jerry,16,eat"

 

posted on   hopeless-dream  阅读(409)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2021-05-26 windows操作系统安装jdk以及配置环境变量
点击右上角即可分享
微信分享提示