选择适合数据的读取方式
JSON 模式接受连续的 JSON 值;slurp 将它们收成数组。原始文本模式逐行读取,整段文本模式保留换行并形成一个字符串。null 模式从 null 开始,但 input 和 inputs 仍能读取提供的数据。
JSON 工具
输入 JSON 或文本,选择输入模式并手动运行;结果保留真实 stdout 和退出码。
预览按 5,000 字符分批显示,复制和下载包含完整结果。
输入和程序仅在浏览器内存中处理,不保存历史记录。
允许 -c -r -j -S -a -e、组合短选项及对应长选项。-s/-R/-n 通过输入模式选择。
jq 1.8.2 · 本地 WebAssembly · 手动运行
结果已过期,复制和下载已禁用。
仅适用于 POSIX shell。先将输入保存为 input.json;复制的命令不含输入数据。
jq 在线运行适合在编写脚本之前验证接口响应的筛选条件:哪些记录应该保留,输出是多个值还是一个数组,都可以直接对照原输入检查。
通过 jq 在线调试确认程序行为,再复制命令到终端。这里的 jq 查询和 jq 过滤使用完整引擎,支持映射、函数、归约与错误处理,而不是只识别几个常见表达式。
.people[] | select(.age >= 18) | .name 会为每位成年人输出一个独立字符串。预览保留结果之间的换行,让你确认后续命令实际接收的内容。
jq 在线运行中的 -s 会在执行程序前把所有 JSON 输入收集为一个数组。给过滤器加方括号则收集当前输入产生的结果,两者处理的阶段不同。
JSON 模式接受连续的 JSON 值;slurp 将它们收成数组。原始文本模式逐行读取,整段文本模式保留换行并形成一个字符串。null 模式从 null 开始,但 input 和 inputs 仍能读取提供的数据。
导入文件、加载示例或清空都会先显示替换预览。应用后可撤销一次,同时恢复输入、程序、选项和原结果。点击运行或按 Ctrl/Cmd+Enter;修改任一参数后,需要重跑才能导出。
非零退出码会禁用导出,即使 -e 只是报告 false、null 或无输出。适用时移除 -e 后重新运行。复制的命令采用 POSIX 引号规则,需要先把相同输入保存为 input.json。
select 保留符合条件的记录,map 构造一个转换后的数组。示例用数字年龄筛选成年人,也可生成包含姓名和布尔值的新对象。数字与包含数字的字符串并非同一种类型。
本页运行 jq 1.8.2 WASM 引擎,支持管道、reduce、def、递归、try/catch 和正则表达式。没有将 jq 程序替换成 JavaScript 子集解释器;文件模块与附加文件参数未开放。
-r 输出不带 JSON 引号的字符串,-j 去除输出分隔符,-c 压缩 JSON,-S 排序键,-a 转义非 ASCII 字符。允许组合短选项和对应长选项,不支持的参数会明确拒绝。
空白、开头的 BOM 和 NUL 字符保留在文本中。debug 与 stderr 显示在独立诊断区域。预览每次增加 5,000 个字符,正常导出包含完整结果而非当前可见片段。
对示例使用 .people[] | select(.age >= 18) | .name。[] 逐个取出记录,select 保留匹配项,再用 .name 取字段。仅当后续步骤要求一个数组时,才给整个表达式加方括号。
在输出选项中添加 -r。它去除字符串结果的 JSON 引号,但保留字符串内部的空格;对象和数组仍按 JSON 输出。如果连结果之间的分隔符也不要,再使用 -j。
使用 [.people[] | select(.age >= 18)]。方括号收集内部过滤器产生的所有值。没有匹配项时得到 [],而不是完全没有输出,这会影响后续脚本的处理方式。
选择收集 JSON(-s),用 . 查看组成的数组。如果输入本身是多个数组,可以用 -s 配合 add 拼接;对象合并涉及同名键覆盖,不能把它与数组收集混为一谈。
选择逐行文本(-R),对简单格式可以从 split("=") | {(.[0]): .[1]} 开始,再按需去掉键和值的空格。如果值中也包含等号,需要不同的分割逻辑;不同配置格式的转义规则不能通用。
发现查询结果或语法处理不正确?