首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >jq 学习笔记

jq 学习笔记

作者头像
用户12558604
发布2026-06-17 17:52:34
发布2026-06-17 17:52:34
120
举报

jq 用 C 语言编写,没有运行时依赖项,因此几乎可以在任何平台上构建。目前已提供 Linux、macOS 和 Windows 的预编译二进制文件。windows使用从该网站下载,然后放入系统环境变量即可

代码语言:javascript
复制
https://jqlang.org/download/

基础语法

代码语言:javascript
复制
# 基本结构
jq [OPTIONS] FILTER [FILE...]

# 常用选项
-c          # 紧凑输出(单行)
-r          # 原始输出(去引号)
--slurp (-s) # 合并输入为数组
--arg       # 传入外部变量

操作符

操作符

描述

示例

.

当前对象

jq '.' data.json

.[]

数组迭代

jq '.[]'

.key

取属性值

.name

.[index]

数组索引

.[0]

,

多结果输出

.id, .name

`

`

管道

select()

条件过滤

select(.age > 18)


数据处理

1. 字段提取
代码语言:javascript
复制
# 提取单个字段
echo '{"name":"拾光","age":18}' | jq '.name'  # "拾光"

# 提取嵌套字段
echo '{"user":{"profile":{"name":"拾光"}}}' | jq '.user.profile.name'
2. 数组操作
代码语言:javascript
复制
# 遍历数组
echo '[1,2,3]' | jq '.[]'  # 1→2→3

# 索引访问
echo '["a","b","c"]' | jq '.[1]'  # "b"

# 切片操作
echo '[0,1,2,3,4]' | jq '.[2:4]'  # [2,3]
3. 条件过滤
代码语言:javascript
复制
# 数值比较
jq 'select(.price > 100)' products.json

# 正则匹配
jq 'select(.email | test("@qq.com$"))' users.json

# 多条件
jq 'select(.active and (.role=="admin"))' 
4. 数学运算
代码语言:javascript
复制
# 数值计算
echo '{"price":99,"tax":0.1}' | jq '.price * (1 + .tax)'

# 统计操作
jq '[.scores[]] | length, min, max, add/.' 
5. 字符串处理
代码语言:javascript
复制
# 拼接
jq '.first + " " + .last'

# 格式化
jq '"ID:\(.id) | Name:\(.name)"'

# 截取
jq '.description[0:20] + "..."' 

6. 迭代控制
代码语言:javascript
复制
# 递归展开
recurse(.children[]?)

# 条件中断
if .level > 10 then empty else . end

常用的模式

需求

命令片段

数组转行

jq -c '.[]'

CSV输出

`jq -r '[.id,.name]

时间戳转换

`jq '.date

去重

unique_by(.id)

嵌套展开

`jq '.data


学习资源

  • • 官方手册:man jq
  • • 交互练习:https://jqplay.org
  • • 速查表:https://lzone.de/cheat-sheet/jq

#JQ

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程拾光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基础语法
  • 操作符
  • 数据处理
    • 1. 字段提取
    • 2. 数组操作
    • 3. 条件过滤
    • 4. 数学运算
    • 5. 字符串处理
    • 6. 迭代控制
  • 常用的模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档