醋醋百科网

Good Luck To You!

jq:命令行处理 JSON 的神器(js调用命令行)

原文链接:「链接」

在当今以数据为核心的时代,JSON(JavaScript Object Notation) 成为前后端、系统通信、日志分析中的通用格式。无论是调用接口查看返回值、分析日志中的结构化数据,还是自动化脚本处理接口返回结果,我们都离不开对 JSON 的解析。而在 Linux/Unix 命令行环境中,有一个高效、强大且优雅的工具,它就是——jq。


一、什么是 jq?

jq 是一个用于命令行中解析、查询、转换 JSON 数据的轻量级工具。它就像 sed 用于文本处理,awk 用于结构化文本处理一样,jq 是 JSON 的“命令行之刃”。

官网:
https://stedolan.github.io/jq/

支持 JSON 的读取、格式化、美化、提取、筛选、修改、重构等操作

完全支持函数式编程语法


二、安装 jq

不同系统的安装方式如下:

# Ubuntu / Debian

sudo apt install jq

 

# CentOS / RHEL

sudo yum install jq

 

# macOS (使用 Homebrew)

brew install jq

 

# Windows

# 直接下载 jq.exe 添加到系统环境变量


三、jq 基本用法

1.示例 JSON 文件 data.json:

pdsyw@pdsyw1024:~/Desktop$ vim data.json

pdsyw@pdsyw1024:~/Desktop$ cat data.json

{

 "name": "Alice",

 "age": 30,

 "skills": ["Linux", "Python", "jq"],

 "address": {

  "city": "Beijing",

  "zip": "100000"

 }

}


2.美化输出(格式化 JSON)

pdsyw@pdsyw1024:~/Desktop$ cat data.json | jq .


3.获取字段值

pdsyw@pdsyw1024:~/Desktop$ jq '.name' data.json


4.提取嵌套字段

pdsyw@pdsyw1024:~/Desktop$ jq '.address.city' data.json


5.遍历数组

pdsyw@pdsyw1024:~/Desktop$ jq '.skills[]' data.json


四、进阶用法


1.筛选数组对象

假设有如下数组:

pdsyw@pdsyw1024:~/Desktop$ vim people.json

pdsyw@pdsyw1024:~/Desktop$ cat people.json

[

 { "name": "Tom", "age": 20 },

 { "name": "Jerry", "age": 32 },

 { "name": "Lucy", "age": 25 }

]


2.提取 age > 25 的人:

pdsyw@pdsyw1024:~/Desktop$ jq '.[] | select(.age > 25)' people.json


3.修改字段值

pdsyw@pdsyw1024:~/Desktop$ jq '.age = 35' data.json


4.删除某个字段

pdsyw@pdsyw1024:~/Desktop$ jq 'del(.skills)' data.json


5.多字段提取

pdsyw@pdsyw1024:~/Desktop$ jq '{username: .name, city: .address.city}' data.json


五、配合 API 使用

最常见的场景是配合 curl 使用,处理接口返回值:

pdsyw@pdsyw1024:~/Desktop$ curl -s https://api.github.com/users/octocat | jq '.name'


六、实用技巧总结

操作

jq 示例

格式化 JSON

jq .

提取字段

jq '.key'

数组遍历

jq '.array[]'

筛选对象

jq 'select(.age > 30)'

重构结构

jq '{name, age}'

多字段组合

jq '{n: .name, c: .address.city}'

删除字段

jq 'del(.key)'

修改字段

jq '.age = 40'


七、写在最后

无论你是开发人员、运维工程师、数据分析师还是自动化脚本爱好者,jq 都是你在处理 JSON 数据时不可多得的利器。 它简单易用,却又功能强大,值得每一位命令行用户掌握。

用 jq 做 JSON 的主人,不再被接口返回值折磨。如果你觉得这篇文章对你有帮助,欢迎点赞、在看、分享给更多朋友,一起掌握 jq 的力量!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言