jq使用简介

JSON 是一种轻量级且与语言无关的数据存储格式,易于与大多数编程语言集成,也易于理解 。虽然它以 JavaScript 开头,而且主要用于在服务器和浏览器之间交换数据,但现在正在用于许多领域,包括嵌入式系统。JSON是前端编程经常用的格式,对于PHP或Python,解析JSON很容易,尤其是PHP的json_encode和json_decode。Linux下处理JSON的神器是jq。对于JSON格式而言,jq就像sed/awk/grep这些神器一样的方便,jq没有乱七八糟的依赖,只需要一个binary文件jq就可以了。Linux 上使用命令行工具jq来解析并格式化打印 JSON,它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用。

JSON 是一种轻量级的数据交换格式,其采用完全独立于语言的文本格式,具有方便人阅读和编写,同时也易于机器的解析和生成。这些特性决定了 JSON 格式越来越广泛的应用于现代的各种系统中。作为系统管理员,在日常的工作中无论是编辑配置文件或者通过 http 请求查询信息,我们都不可避免的要处理 JSON 格式的数据。

jq 是一款命令行下处理 JSON 数据的工具,其可以接受标准输入,命令管道或者文件中的 JSON 数据,经过一系列的过滤器 (filters) 和表达式的转后形成我们需要的数据结构并将结果输出到标准输出中。jq 的这种特性使我们可以很容易地在 Shell 脚本中调用它。

Install: jq的官网地址https://github.com/stedolan/jq

jq官方手册:https://stedolan.github.io/jq/manual/ ,但我们平时基本上掌握一些基本用法就够了。实际工作中可能大部分都是shell脚本里请求http接口返回的json数据,这里直接拿一个josn数据的文本来练习使用方法来练习使用方法了。练习数据文件名“test.json”,具体内容如下:

{

    "Name": "吾八哥",

    "Age": 33,

    "website": "www.5bug.wang",

    "Group": [{

        "ID": 1001,

        "Name": "讨论组1"

},

{

        "ID": 1002,

        "Name": "讨论组2"

    }]

}

简单的读取方法如下:

#存储到json变量里

Bash

json=$(cat test.json)

#以json格式显示

Bash

echo $json | jq '.'

#读取Name字段

Bash

echo $json | jq '.Name'

#读取Group的长度

Bash

echo $json | jq '.Group | length'

#读取Group数组内的索引为1的item里的ID

Bash

echo $json | jq '.Group[1].ID'

#读取website和Group数组内的索引为1的item

Bash

echo $json | jq '[.website,.Group[1]]'

#显示当前层下所有的字段名

Bash

json | jq '.' | jq 'keys'

#判断是否包含某个字段名

Bash

echo $json | jq '.' | jq 'has("Age")'

这里只是非常基础的使用方法,还有很多其他的好用的功能,例如fitter,数组切片,迭代器,内置运算,映射,过滤路径操作等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络飞鸥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值