jq linux下载文件,linux下的json命令行工具–jq

jq是一个很轻量却很强大的命令行下的json解析器。jq是json中的“sed”命令,它可以用来slice、filter、map、transform json数据。jq是用C编写的,它没有其他依赖,你可以直接下载一个可执行文件,然后拷贝到其他机器上去执行,完全没有问题。

安装

jq用C语言编写,运行时无需其他依赖,它几乎可以运行在任何平台上。如果你是Linux、OS X、或者Windows,可以直接下载二级制版本。

二进制版本知己可以运行,但是在OS X、和Linux上,记得chmod +x jq

jq 1.5已经集成到Debian和Ubuntu的官方源中,运行sudo apt-get install jq即可

jq 1.5已集成到Fedora的官方源中,运行sudo dnf install jq即可

jq 1.4已经集成到openSuse官方源中,运行sudo zypper install jq即可

Arch用户,已经在AUR中准备了PKGBUILD,参考ArchWiki去安装

语法

github上有一个json的接口,调用它会得到一串json,下面的例子就使用这串json数据。

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’

上面的接口已经返回了格式化好的json串,如果没有,我们可以使用jq,格式化一下:

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’ | jq ‘.’

我们还可以只取其中的第一条数据:

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’ | jq ‘.[0]’

只取某些特定的字段,下面是取出第一个数据中的,commit节点下的message字段和commit节点下的committer节点下的name字段:

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’ | jq ‘.[0] | {message: .commit.message, name: .commit.committer.name}’

//结果

{

“message”: “Merge pull request #162 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161”,

“name”: “Stephen Dolan”

}

.[0]取得了JsonArray中的第一个元素;.commit.message取得了json中具体的属性值.

jq ‘.[] | {message: .commit.message, name: .commit.committer.name}’

取出全部的commit:

jq ‘.[] | {message: .commit.message, name: .commit.committer.name}’

.[] 取出全部的元素,然后将相应的字段赋值给message,name.

如果想把上面的结果放在Array里,我们可以这样:

jq ‘[.[] | {message: .commit.message, name: .commit.committer.name}]’

//结果

[

{

“message”: “Merge pull request #163 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161”,

“name”: “Stephen Dolan”

},

{

“message”: “Reject all overlong UTF8 sequences.”,

“name”: “Stephen Dolan”

}

]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值