下载
MacOS
Ubuntu
1
| $ sudo apt install jq -y
|
CentOS
CentOS 需要将 EPEL 的软件包添加到源列表中
1 2
| $ sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo yum repolist
|
安装
1
| $ sudo yum install jq -y
|
更多安装方式见文档
使用
输出 json 文件
1 2 3 4 5
| $ jq '.' test.json
{ "name": "wxnacy" }
|
管道命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ curl -s http://ip-api.com/json | jq { "as": "AS22552 eSited Solutions", "city": "Orlando", "country": "United States", "countryCode": "US", "isp": "eSited Solutions", "lat": 28.5434, "lon": -81.2256, "org": "eSited Solutions", "query": "104.222.246.242", "region": "FL", "regionName": "Florida", "status": "success", "timezone": "America/New_York", "zip": "32825" }
|
过滤
过滤 value
1 2
| $ echo '{"name":"wxnacy", "id": 1}' | jq '.name' "wxnacy"
|
过滤字段
1 2 3 4 5
| $ echo '{"name":"wxnacy", "id": 1, "age": 23}' | jq '{"name", "id"}' { "name": "wxnacy", "id": 1 }
|
判断空值
1 2 3 4
| $ echo '{"name":"wxnacy", "id": 1, "age": 23}' | jq '{"time"}?' { "time": null }
|
1 2
| $ echo '{"name":"wxnacy", "id": 1}' | jq '.time?' null
|
截取数组
1 2
| $ echo '[1, 2, 3, 4]' | jq '.[0]' 1
|
1 2 3 4 5
| $ echo '[1, 2, 3, 4]' | jq '.[0:2]' [ 1, 2 ]
|
获取数组和字典的所有值
1 2 3 4 5
| $ echo '[1, 2, 3, 4]' | jq '.[]' 1 2 3 4
|
1 2 3
| $ echo '{"name":"wxnacy", "id": 1}' | jq '.[]' ⬡ 8.4.0 "wxnacy" 1
|
使用逗号获取多个值
1 2 3
| $ echo '{"name":"wxnacy", "id": 1}' | jq '.name, .id' "wxnacy" 1
|
1 2 3
| $ echo '[1, 2, 3, 4]' | jq '.[0, 3]' 1 4
|
更多过滤方法见文档
更多使用实例
获取列表中某个字段的值
![Linux 强大的 JSON 数据命令行工具 jq-LMLPHP Linux 强大的 JSON 数据命令行工具 jq-LMLPHP]()
1 2 3 4 5 6 7
| $ curl -s https://raw.githubusercontent.com/wxnacy/file/master/common/V9MiMl2DwA4.json | jq '.data.items[].id' | sed 's/"//g'
V9MiMl2DwA4 wQKKZXYx7eg NfFnHs67qjY 826v1-bvSwA IAK-IP0Sjic
|