jq 在线运行

jq 运行工具,在浏览器内通过 WebAssembly 运行官方 jq 1.8,不用安装、不用打开终端,输入 .store.book[] | select(.price < 10) 这类表达式就能实时过滤、映射、分组、排序 JSON,支持 -r 原始输出。首次使用会按需下载约 0.9MB 的 WASM 引擎(之后走缓存),计算在浏览器本地的 Web Worker 中完成;引擎不可用时可以改用 JSONPath 查询。

在工作台中打开 本地处理 · 数据不上传

怎么使用

  1. 1

    粘贴 JSON 数据

    把要处理的 JSON 粘贴到左侧输入框,或点击「填入示例」;JSON 语法错误会在编辑器行内高亮。

  2. 2

    切换到 jq 引擎并输入表达式

    顶部选择「jq 1.8」标签(也可直接访问 /app/jq);首次查询会自动下载并编译 WASM 引擎,状态栏有加载提示,之后查询即时执行。

  3. 3

    实时查看输出

    停顿 400ms 自动运行:语法错误给出 jq 原始报错与中文归类,运行成功展示输出值、命中路径列表与耗时;勾选「-r 原始输出」可得到等价命令行 jq -r 的无引号文本。

  4. 4

    复制或提取结果

    复制输出,或点「提取到格式化」把结果发送到 JSON 格式化工作台继续处理。

功能特点

官方 jq 1.8(WASM)

使用 jq-wasm 在浏览器内运行真正的 jq 1.8.2,select、map、group_by、sort_by、正则 test、// 默认值等内建函数行为与命令行完全一致。

按需加载、用完缓存

约 0.9MB 的 WASM 引擎与 jq 运行时是独立分包,只有第一次执行 jq 查询时才下载;普通 JSONPath 用户与落地页首屏不承担这份体积。

-r 原始输出模式

勾选后等价于 jq -r:字符串不再带 JSON 引号、多行文本原样输出,方便生成纯文本报表或拼接 shell 命令。

错误分类提示

语法错误(syntax / compile error)与运行时错误(如对字符串做 tonumber)分别归类并原样展示 jq 报错,便于对照官方手册修正。

内置 jq 速查卡

基础取值、遍历映射、过滤分组、对象与默认值四组可运行示例,点击即填入,新手也能快速写出管道表达式。

降级 JSONPath 兜底

在不支持 WebAssembly 的老旧浏览器或受限 WebView 中,页面会给出提示,并可以切换到 JSONPath 引擎继续完成取值任务。

常见错误与排查

  • ! .store.book[] 末尾的 [] 会把数组「拆开」逐个输出;想要结果仍是数组,用 [.store.book[] | select(.price < 10)] 包起来。
  • ! 管道 | 是 jq 的核心:.store.book | map(.price) | add 先取数组、再映射成价格数组、最后求和;阅读表达式从左到右即可。
  • ! 对 null 取字段在 jq 1.8 中不报错(如 {} | .a.b 得到 null),过滤不到数据时优先用 keys、.. 等确认实际层级,而不是怀疑表达式崩溃。
  • ! select 只负责过滤,不负责投影:select(.price<10) 输出整个元素;只要标题需再接 | .title,如 .store.book[] | select(.price<10) | .title。
  • ! 需要字符串不带引号(生成 CSV / 纯文本)时勾选 -r;此时多值输出按换行连接,与命令行 jq -r 行为一致。

常见问题

在线 jq 和本地命令行 jq 的结果一致吗?

一致。本工具通过 WebAssembly 运行官方 jq 1.8.2,不是 JavaScript 重写版,过滤、算术、字符串、正则等内建函数行为与同版本命令行 jq 相同;-r 选项同样对应命令行 jq -r 的原始文本输出。

第一次查询为什么要等一下?

jq 引擎是约 0.9MB 的 WebAssembly 文件,按路由分包、只在第一次执行 jq 查询时下载并编译,下载后浏览器与 Service Worker 都会缓存,之后的查询即时运行。这保证了站点落地页和不使用 jq 的用户完全不加载这份体积。

提示 jq 引擎不可用怎么办?

极少数老旧浏览器或禁用 WebAssembly 的受限 WebView 无法运行 WASM。结果区会给出明确引导,点击「改用 JSONPath」即可切换到纯 JavaScript 的 JSONPath 引擎完成取值与过滤;绝大多数现代浏览器(含 iOS Safari、Chrome、Edge、Firefox)都可以直接使用 jq。

我的 JSON 数据会被上传到服务器吗?

不会。jq 的 WASM 运行在浏览器本地的 Web Worker 线程中,数据只在你的设备内存里被处理,站点没有后端服务。可以打开开发者工具 Network 面板验证:除引擎文件等静态资源外,不存在携带数据的业务请求。

怎么把 jq 输出导出成文件或继续格式化?

点「复制结果」粘贴保存即可;输出本身是合法 JSON 时,点「提取到格式化」会把结果直接送入 JSON 格式化工作台(自动美化、压缩或转义),无需手工新建文件再粘贴。

相关工具