ZeroTool Workbench
jq 在线测试
在浏览器中用官方 jq 1.7 引擎测试过滤器,支持 pipe、select、map、group_by、sort、reduce 等完整语法,零安装零上传零账号。
使用方法
- 把 JSON 粘贴或输入到左侧 JSON 输入 区域(预置了示例 users 数据)。
- 在 jq 过滤器 输入框写过滤器,或点击下方任意 示例 pill。
- 结果会在 结果 区域以高亮 JSON 渲染。
- 点 复制 把格式化输出放进剪贴板。
jq 速查
.— 恒等过滤器,输入原样输出.field— 取属性值.field?— 可选取值,字段缺失时不报错.[]— 迭代数组或对象的值.[start:end]— 数组切片f | g— 把 f 的输出管道给 gf, g— 同时输出 f 和 gselect(cond)— 保留 cond 为 true 的值map(f)— 对数组每个元素应用 fgroup_by(.k)— 按 key 分组sort_by(.k)— 按 key 排序length、keys、values、type、has(k)— 内省add、min、max、unique— 聚合tonumber、tostring、ascii_downcase、split(”/”)— 转换reduce、foreach、def— 控制流与自定义函数
常见用途
jq 是 shell 管道处理 JSON 的标配工具:curl 拿到的 API 响应、Kubernetes manifest、CI/CD 日志、
AWS CLI 输出、基础设施 state、数据导出。这个 Playground 用来在小样本上调好过滤器,然后把表达式直接
复制到 jq -r ’…’ 处理大文件。
常用配方:.items | map({id, name}) 把 API 列表打平;
group_by(.tag) | map({tag: .[0].tag, count: length}) 按 tag 分桶;
[.[] | .duration_ms] | add / length 算平均耗时。
FAQ
这是真正的 jq 吗,还是 JavaScript 重写版?
这是 jq 1.7 官方 C 源码通过 jq-web 编译成 WebAssembly 的版本。过滤结果与命令行 jq 完全一致。引擎首次访问下载约 1MB,浏览器缓存后再次访问零延迟。
支持哪些 jq 语法?
完整 jq 1.7 —— pipe、select、map、group_by、sort_by、reduce、foreach、try/catch、自定义函数 def、递归下降 ..、字符串/数学/日期函数和所有内置函数。命令行 jq 能跑的过滤器这里都能跑。
我的 JSON 和过滤器会被上传吗?
不会。jq 引擎通过 WebAssembly 完全在浏览器中运行。JSON 和过滤器不离开你的设备。打开 DevTools 的 Network 面板,只会看到 jq.wasm 的一次性下载,没有任何请求体。
JSON 大小有上限吗?
实用上限约 50MB —— 超出后浏览器内存与解析时间会明显增加。处理 GB 级 JSON 流请用命令行 jq 的 --stream 模式。
与 JSONPath Tester 有什么区别?
JSONPath 是按路径选取节点的查询语言。jq 是完整的转换语言,支持管道、条件、数学、函数定义。简单查找用 JSONPath Tester;重塑、过滤、聚合、改格式用 jq。