如何筛选 JSON 数组并导出指定字段?
粘贴 JSON 并输入 JMESPath 表达式,即可筛选和转换数据。查询在可取消的浏览器 Worker 中执行,输入最多 2 MiB,单次处理超过 30 秒会停止。结果可复制或下载,输入不会上传。
具体怎么操作?
- 粘贴 JSON,或打开不超过 2 MiB 的本地 JSON 文件。
- 输入 users[?age >= `18`].name 等 JMESPath 表达式,点击“运行”。
- 核对结果后复制或下载。更改输入或表达式后,需要重新运行。
提取成年用户的姓名
筛选年龄至少为 18 的用户,然后仅返回姓名字段。
输入:
{"users":[{"name":"Ada","age":32},{"name":"Linus","age":17}]}
表达式:users[?age >= `18`].name
输出:
[
"Ada"
]什么时候适合使用?
选取字段和转换结构时使用本工具;查看语法时使用 JSON 格式化;比较完整文档时使用 JSON Diff。需要保留数字原始文本时,请保留原文件。
结果有哪些边界?
使用 JMESPath Community 语法,不执行任意 JavaScript,也不是 JSONPath。JSON 数字采用 JavaScript 普通精度,超大 ID 应保留为字符串。表达式无法请求远程地址。
遇到问题怎么办?
| 问题 | 处理方法 |
|---|---|
| 结果为 null。 | 对应路径不存在,或值本身就是 null。 检查字段拼写和实际结构;null 也可能是正常查询结果。 |
| 表达式语法错误。 | 混用了 JavaScript、JSONPath 和 JMESPath 语法。 JSON 字面量使用反引号,特殊字段名使用双引号;按 JMESPath 教程检查表达式。 |
常见问题
需要上传内容或注册账号吗?
不需要。处理在当前浏览器中完成;本站只提供页面和所需静态引擎资源。
为什么修改输入后结果消失?
工具会清除旧输出,避免把上次结果误当成新结果。更改输入或设置后,请重新运行。
参考资料
首次发布:根据当前工具界面核对步骤,补充示例和已知限制。