当前位置: 首页 > 后端技术 > Java

超好用的轻量级JSON处理命令jq

时间:2023-04-01 18:33:52 Java

1介绍jq是一个轻量级的命令行工具,可以让你轻松处理JSON数据,如segment、filtering、mapping、conversion等,就像sed、awk一样,和grep文本处理同三剑客。jq是用C编写的,没有运行时依赖性。您可以直接下载可执行文件并使用它。2下载安装官网提供可执行文件,可以直接下载使用,也可以源码编译。我是直接下载的,然后赋予可执行权限:$chmod+xjq-osx-amd64改名为jq:$mvjq-osx-amd64jq然后加入PATH。$jq--versionjq-1.63使用方法提供了官方在线版本,可以直接使用,给出了很多常用的例子,不太方便:3.1一些简单的例子Filter:getallcontent:$echo'{"name":"LarryDeng"}'|jq.{"name":"LarryDeng"}filter:获取特定键值:$echo'{"name":"LarryDeng"}'|jq.name"LarryDeng"计算长度:$echo'{"name":"LarryDeng","age":18}'|jq'.name|length'的数学计算(立方体):$echo'[1,2,3]'|jq'map(.*.*.)'[1,8,27]截取数组部分(使用管道):$echo'[1,2,3]'|jq'.[0:2]|map(.*.*.)'[1,8]读取键值:$echo'{"abc":1,"abcd":2,"Foo":3}'|jqkeys["Foo","abc","abcd"]3.2处理文件除了通过管道处理文本外,还可以直接处理文件。将以下内容保存为jq.json:{"info":[{"name":"LarryDeng","age":"18","webSite":"www.pkslow.com"},{"name":"Larry","age":"01","webSite":"pkslow.com"},{"name":"LarryDpk","age":"20","webSite":"https://www.pkslow.com"}],"version":"1.0.3"}处理如下:$jq.versionjq.json"1.0.3"$jq.info[0]jq.json{"name":"LarryDeng","age":"18","webSite":"www.pkslow.com"}$jq'.info|.[].name'jq.json"LarryDeng""Larry""LarryDpk"$jq'.info|.[].webSite'jq.json"www.pkslow.com""pkslow.com""https://www.pkslow.com"4总结jq真的很好用,尤其是在我们通过curl获取json结果时。更多用法请参考手册:https://stedolan.github.io/jq...