JSONPath 查询器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/jc20264588 到当前 AI 助手。
技能介绍
从嵌套 JSON 中按路径取数
当你面对一棵客户树,其中每个节点下又挂着多条交易记录,需要快速筛出 amount 超过 100000 的那一批时,逐个遍历节点既低效又容易写错。配置化字段抽取也面临同样的问题:路径通常写在配置文件里,需要一套稳定的、可预期的查询语义来定位数据。
工作原理
这个技能的核心是 JSONPath({ path, json }):给定一个 JSONPath 表达式和目标 JSON,返回匹配的节点集合。
关键步骤:
- 依赖
jsonpath-plus,支持过滤表达式如$.customers[*].deals[?(@.amount>100000)] - 结果统一为数组,便于后续表格化展示
- 默认
wrap: false,也可按需包装 path为空或语法非法时,返回{ ok: false, error }而不是抛异常- 实现要点标注 小四原创
适用边界
- 路径定位用 JSONPath,复杂数据变换建议用 JSONata;两者并存时需向用户说明
- 不要将不可信用户输入直接拼接进 path 而不校验,否则可能产生注入式异常路径
- 非法 path 会被捕获并返回错误对象,不要把整棵 JSON 树打印进 console
使用场景
- 面对嵌套客户树,用 `$.customers[*].deals[?(@.amount>100000)]` 取高金额交易列表
- 配置化抽取场景:路径写在配置里,程序按 JSONPath 读取指定字段
- Demo 工具箱里试 JSONPath,确认表达式能正确取到目标节点
- 需要从大 JSON 中按条件过滤数组元素,并把结果整理成表格展示
适合人员
- 后端工程师:需要从嵌套 JSON 中按路径取数,再做阈值过滤或表格化输出
- 前端开发者:在配置化字段抽取中用 JSONPath 描述要展示的字段位置
- 数据分析师:从客户树或交易数据中筛出高金额名单并交付给下游
- Agent 开发者:需要可预测的 JSONPath 查询能力并把错误路径安全捕获