前言
看到公司大佬用命令行操作 JSON,着实很秀,想起自己操作 JSON 要么用在线文档,要么用本地工具,非常之 low。
一个真实案例:有一个比较大的 JSON 数组(大概是这个格式:
[{..},{..}..]),我和大佬要查数组内所有字典的相同 key 下是否存在重复的 value,然后我还在思考怎么做效率比较高,大佬已经查完了,只用了大概几秒钟的时间。接着他给我发了一张截图,我看到截图上的 jq 命令,脑袋里全是问号?jq 是啥?貌似没一点印象?确实没印象!于是开始了解 jq 命令行工具,这里简单记录下,非常感谢大佬打破菜鸡的认知水平。
- 首先 Mac 命令行安装 jq 工具:
 
 | 
 | 
安装过程稍微有点慢,如果这个时候有报错,大概率是本地环境问题。
- 安装完之后,准备好一个 JSON 文件,或者直接命令行创建也可以:
 
 | 
 | 
使用方法
- 查看创建的 JSON:
 
 | 
 | 

- 其它的一些用法:
 
 | 
 | 
| 是管道线的意思,把前面命令的输出当作是后面命令的输入。如上第一个属性列表命令把 .[] 作为输入,进而访问嵌套的属性 .name,打印结果见下图:

总结
jq 是一个效率很高的 JSON 处理工具,使用起来也非常简单方便,我这里只简单记录下常用的功能,一般的 JSON 处理需求之后都可以使用 jq。