大数跨境
0
0

jq:命令行处理 JSON 的神器

jq:命令行处理 JSON 的神器 鹏大圣运维
2025-08-07
611
导读:用 jq 做 JSON 的主人,不再被接口返回值折磨。

命令行处理JSON的利器:jq工具使用指南

在数据驱动的时代,JSON已成为前后端通信、系统交互和日志分析中的标准数据格式。无论是在接口调试、日志解析,还是自动化脚本中处理结构化数据,高效解析JSON是开发者和运维人员的日常需求。在Linux/Unix命令行环境中,jq作为一款轻量级但功能强大的工具,被誉为处理JSON的“瑞士军刀”[k]

jq支持JSON的格式化、提取、筛选、修改和重构,语法简洁且功能完整,兼容函数式编程特性,极大提升了命令行下处理JSON的效率[k]

安装jq

jq支持主流操作系统,安装方式如下[k]

# Ubuntu / Debian
sudo apt install jq

# CentOS / RHEL
sudo yum install jq

# macOS (使用 Homebrew)
brew install jq

# Windows
# 下载 jq.exe 并添加至系统环境变量

基础用法

以下以示例文件data.json进行演示[k]

{
  "name": "Alice",
  "age": 30,
  "skills": ["Linux", "Python", "jq"],
  "address": {
    "city": "Beijing",
    "zip": "100000"
  }
}

格式化输出
使用jq .可对JSON进行美化输出,提升可读性[k]

cat data.json | jq .

获取字段值
提取顶层字段内容[k]

jq '.name' data.json

提取嵌套字段
支持点号语法访问嵌套结构[k]

jq '.address.city' data.json

遍历数组
使用[]操作符遍历数组元素[k]

jq '.skills[]' data.json

进阶操作

jq不仅支持基础查询,还可处理复杂数据结构。以下以people.json为例展示进阶功能[k]

[
  { "name": "Tom", "age": 20 },
  { "name": "Jerry", "age": 32 },
  { "name": "Lucy", "age": 25 }
]

筛选符合条件的数组元素
使用select()函数筛选年龄大于25的记录[k]

jq '.[] | select(.age > 25)' people.json

字段修改
jq支持在命令行中直接修改JSON字段(具体语法可根据需求扩展)[k]

免责声明:本文所有操作均在测试环境中验证。实际使用时可能伴随系统风险,可能导致数据异常或系统问题,建议谨慎操作。本内容仅提供技术思路,不对任何实际操作后果负责[k]

掌握jq命令:高效处理JSON数据的实用指南

通过实例快速上手jq的核心操作与应用场景

04 删除某个字段

pdsyw@pdsyw1024:~/Desktopjq 'del(.skills)' data.json




05 多字段提取

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




配合API使用是jq的常见场景,通常与curl结合处理接口返回数据:

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




以下是jq常用操作的实用总结:

操作

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数据的强大命令行工具,广泛适用于开发、运维、数据分析及自动化脚本等场景。它语法简洁、功能丰富,能够高效解析、过滤和转换JSON内容[k]。熟练掌握jq,可显著提升处理API返回数据或配置文件的效率,成为命令行用户不可或缺的技能之一[k]

【声明】内容源于网络
0
0
鹏大圣运维
各类跨境出海行业相关资讯
内容 718
粉丝 0
鹏大圣运维 各类跨境出海行业相关资讯
总阅读25.4k
粉丝0
内容718