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

发布时间 - 2025-12-04 00:00:00    点击率:
Linux下解析JSON主要用jq工具,它轻量强大、支持管道;安装后可用.key提取字段、-r原始输出、select()过滤、.[]展开数组等操作处理嵌套与数组数据。

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

{
  "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  # centos  # js  # json  # ubuntu  # 工具  # mac  # curl  # macos  # dnf  # 格式化输出  # cos  # select 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高性能网站服务器配置指南:安全稳定与高效建站核心方案  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何用wdcp快速搭建高效网站?  如何快速生成橙子建站落地页链接?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  javascript如何操作浏览器历史记录_怎样实现无刷新导航  网站图片在线制作软件,怎么在图片上做链接?  JavaScript实现Fly Bird小游戏  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel如何配置Horizon来管理队列?(安装和使用)  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  网站建设要注意的标准 促进网站用户好感度!  进行网站优化必须要坚持的四大原则  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  简单实现jsp分页  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel storage目录权限问题_Laravel文件写入权限设置  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel如何实现API速率限制?(Rate Limiting教程)  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  中国移动官方网站首页入口 中国移动官网网页登录  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  高端网站建设与定制开发一站式解决方案 中企动力  网站优化排名时,需要考虑哪些问题呢?  三星、SK海力士获美批准:可向中国出口芯片制造设备  如何用景安虚拟主机手机版绑定域名建站?  如何快速生成凡客建站的专业级图册?  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  jQuery validate插件功能与用法详解  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel集合Collection怎么用_Laravel集合常用函数详解  JS经典正则表达式笔试题汇总  Python并发异常传播_错误处理解析【教程】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Bootstrap整体框架之JavaScript插件架构  如何用y主机助手快速搭建网站?  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  智能起名网站制作软件有哪些,制作logo的软件?  JavaScript中的标签模板是什么_它如何扩展字符串功能  WEB开发之注册页面验证码倒计时代码的实现