首页 > 运维 > linux运维 > 正文

Linux 怎么解析 JSON?jq 实战教程

冰川箭仙
发布: 2025-12-04 20:24:06
原创
224人浏览过
Linux下解析JSON主要用jq工具,它轻量强大、支持管道;安装后可用.key提取字段、-r原始输出、select()过滤、.[]展开数组等操作处理嵌套与数组数据。

linux 怎么解析 json?jq 实战教程

Linux 下解析 JSON 主要用 jq,它轻量、强大、支持管道,是命令行处理 JSON 的事实标准。

安装 jq

大多数发行版自带包管理器可一键安装:

  • Ubuntu/Debian:sudo apt install jq
  • CentOS/RHEL/Fedora:sudo yum install jqsudo dnf install jq
  • macOS(Homebrew):brew install jq

装完运行 jq --version 确认是否就绪。

基础语法:从简单提取开始

jq 的核心是“过滤器”,用点号 . 表示当前对象,用 .key 提取字段,用 .[index] 取数组元素。

例如有文件 user.json

AIBox 一站式AI创作平台
AIBox 一站式AI创作平台

AIBox365一站式AI创作平台,支持ChatGPT、GPT4、Claue3、Gemini、Midjourney等国内外大模型

AIBox 一站式AI创作平台 224
查看详情 AIBox 一站式AI创作平台
{
  "name": "Alice",
  "age": 30,
  "hobbies": ["reading", "cycling"]
}
登录后复制

提取姓名:jq '.name' user.json"Alice"
提取年龄并去掉引号(用 -r 原始输出):jq -r '.age' user.json30
取第一个爱好:jq -r '.hobbies[0]' user.jsonreading

常用操作:过滤、格式化与组合

实战中常需筛选、重组或拼接数据:

  • 过滤对象:jq 'select(.age > 25)' users.json(保留 age 大于 25 的条目)
  • 格式化输出为一行:jq -c '.' data.json
  • 重命名+精简字段:jq '{username: .name, years: .age}' user.json
  • 合并多个 JSON 字段成字符串:jq -r '.name + " is " + (.age|tostring) + " years old"' user.json

配合 curl 使用很常见,比如查公网 IP:curl -s https://httpbin.org/ip | jq -r '.origin'

进阶技巧:处理嵌套与数组

JSON 经常多层嵌套或含数组。用 .[] 展开数组,| 连接多个操作:

[
  {"id": 1, "tags": ["web", "linux"]},
  {"id": 2, "tags": ["cli", "json"]}
]
登录后复制

列出所有 tag:jq '.[].tags[]' data.json
只取含 "linux" 的项:jq 'map(select(.tags[] == "linux"))' data.json
统计 tag 总数:jq '[.[]|.tags|length]|add' data.json

基本上就这些。jq 不复杂但容易忽略细节,多练几个真实 JSON 就上手了。

以上就是Linux 怎么解析 JSON?jq 实战教程的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号