jq 是用 C 语言编写的,没有运行时依赖性,因此应该可以为几乎任何平台构建它。 预构建的二进制文件适用于Linux,OS X和Windows。
下载
MacOS
1 | $ brew install jq |
Ubuntu
1 | $ sudo apt install jq -y |
CentOS
CentOS 需要将 EPEL 的软件包添加到源列表中
1 | $ sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm |
安装
1 | $ sudo yum install jq -y |
更多安装方式见文档
使用
输出 json 文件
1 | $ jq '.' test.json |
管道命令
1 | $ curl -s http://ip-api.com/json | jq |
过滤
过滤 value
1 | $ echo '{"name":"wxnacy", "id": 1}' | jq '.name' |
过滤字段
1 | $ echo '{"name":"wxnacy", "id": 1, "age": 23}' | jq '{"name", "id"}' |
判断空值
1 | $ echo '{"name":"wxnacy", "id": 1, "age": 23}' | jq '{"time"}?' |
1 | $ echo '{"name":"wxnacy", "id": 1}' | jq '.time?' |
截取数组
1 | $ echo '[1, 2, 3, 4]' | jq '.[0]' |
1 | $ echo '[1, 2, 3, 4]' | jq '.[0:2]' |
获取数组和字典的所有值
1 | $ echo '[1, 2, 3, 4]' | jq '.[]' |
1 | $ echo '{"name":"wxnacy", "id": 1}' | jq '.[]' ⬡ 8.4.0 |
使用逗号获取多个值
1 | $ echo '{"name":"wxnacy", "id": 1}' | jq '.name, .id' |
1 | $ echo '[1, 2, 3, 4]' | jq '.[0, 3]' |
更多过滤方法见文档
更多使用实例
获取列表中某个字段的值
1 | $ curl -s https://raw.githubusercontent.com/wxnacy/file/master/common/V9MiMl2DwA4.json | jq '.data.items[].id' | sed 's/"//g' |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章
