ZeroTool Workbench

jq 在线测试

在浏览器中用官方 jq 1.7 引擎测试过滤器,支持 pipe、select、map、group_by、sort、reduce 等完整语法,零安装零上传零账号。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册
示例
结果

引擎:jq 1.7(WASM,首次加载后浏览器缓存)

使用方法

  1. 把 JSON 粘贴或输入到左侧 JSON 输入 区域(预置了示例 users 数据)。
  2. jq 过滤器 输入框写过滤器,或点击下方任意 示例 pill。
  3. 结果会在 结果 区域以高亮 JSON 渲染。
  4. 复制 把格式化输出放进剪贴板。

jq 速查

  • . — 恒等过滤器,输入原样输出
  • .field — 取属性值
  • .field? — 可选取值,字段缺失时不报错
  • .[] — 迭代数组或对象的值
  • .[start:end] — 数组切片
  • f | g — 把 f 的输出管道给 g
  • f, g — 同时输出 f 和 g
  • select(cond) — 保留 cond 为 true 的值
  • map(f) — 对数组每个元素应用 f
  • group_by(.k) — 按 key 分组
  • sort_by(.k) — 按 key 排序
  • lengthkeysvaluestypehas(k) — 内省
  • addminmaxunique — 聚合
  • tonumbertostringascii_downcasesplit(”/”) — 转换
  • reduceforeachdef — 控制流与自定义函数

常见用途

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。