JSON 查询与筛选可以处理什么?
粘贴 JSON 并输入 JMESPath 表达式,即可筛选和转换数据。查询在可取消的浏览器 Worker 中执行,输入最多 2 MiB,单次处理超过 30 秒会停止。结果可复制或下载,输入不会上传。
什么时候使用这个工具?
选取字段和转换结构时使用本工具;查看语法时使用 JSON 格式化;比较完整文档时使用 JSON Diff。需要保留数字原始文本时,请保留原文件。
如何使用?
- 粘贴 JSON,或打开不超过 2 MiB 的本地 JSON 文件。
- 输入 users[?age >= `18`].name 等 JMESPath 表达式,点击“运行”。
- 核对结果后复制或下载。更改输入或表达式后,需要重新运行。
实际输入输出示例
提取成年用户的姓名
输入
{"users":[{"name":"Ada","age":32},{"name":"Linus","age":17}]}
表达式:users[?age >= `18`].name输出
[
"Ada"
]筛选年龄至少为 18 的用户,然后仅返回姓名字段。
常见错误与修复方法
| 现象 | 可能原因 | 修复方法 |
|---|---|---|
| 结果为 null。 | 对应路径不存在,或值本身就是 null。 | 检查字段拼写和实际结构;null 也可能是正常查询结果。 |
| 表达式语法错误。 | 混用了 JavaScript、JSONPath 和 JMESPath 语法。 | JSON 字面量使用反引号,特殊字段名使用双引号;按 JMESPath 教程检查表达式。 |
支持范围与限制
使用 JMESPath Community 语法,不执行任意 JavaScript,也不是 JSONPath。JSON 数字采用 JavaScript 普通精度,超大 ID 应保留为字符串。表达式无法请求远程地址。
标准与实现参考
- JMESPath Community TypeScript 官方仓库 (opens in a new tab)提供浏览器查询解释器,采用版本记录在全站清单。
- JMESPath 官方教程 (opens in a new tab)介绍投影、筛选、表达式和字段名规则。
关于JSON 查询与筛选的常见问题
输入内容会上传吗?
不会。数据在浏览器 Worker 内处理。页面从本站加载所需引擎,不向处理 API 发送输入、输出或文件名。
需要账号或 API Key 吗?
不需要账号、API Key 或后端处理服务。
如何保存处理结果?
检查结果后,使用对应的复制或下载控件。修改输入会清除旧结果,避免误用。
有哪些限制?
使用 JMESPath Community 语法,不执行任意 JavaScript,也不是 JSONPath。JSON 数字采用 JavaScript 普通精度,超大 ID 应保留为字符串。表达式无法请求远程地址。
更新记录
新增浏览器本地处理、明确大小限制、取消操作、实际输入输出示例、常见错误解释和结果下载;完成中文工作区与说明审校。