JSONPath 查询

📄 JSONPath Query

📐 工作原理与说明
用 JSONPath 表达式查询 JSON 数据。
  • 语法:$ 为根,. 取属性,[] 取下标,* 通配,.. 递归下降。
  • 过滤:[?(@.price < 10)] 按条件筛选数组元素。
  • 类比:JSONPath 之于 JSON,相当于 XPath 之于 XML。
  • 注意:不同实现(Goessner 原版与各语言库)在细节上存在差异。

Query and extract from JSON using JSONPath in your browser — filter and pick fields instantly.

常用表达式:
⏳ 等待输入 匹配: 0 耗时: 0ms

📋 查询结果

等待查询...

📖 JSONPath 语法参考

表达式说明示例
$根节点$ - 整个 JSON
@当前节点@.price - 当前节点的 price
.property子属性$.user.name
..property递归查找$..id - 所有层级的 id
*通配符$.store.* - store 下所有子元素
[index]数组索引$.items[0]
[start:end]数组切片$.items[1:3]
[?(expr)]过滤表达式$.items[?(@.price>10)]
length()数组长度$.items.length()

📚 深度解析:JSONPath 查询器

💡 常见使用场景

  • 从大 JSON 提取子集。
  • 在日志或大响应里定位字段:用 $.result.items[0].name 直接取出目标值,不必层层展开 JSON 树。
查询
`$.store.book[?(@.price<10)].title` 取低价书名。

❓ 常见问题(FAQ)

与 XPath 区别?
JSONPath 面向 JSON,语法更简洁。
为什么用 * 通配取不到深层字段?
因为 * 只匹配一层。$.a.*.c 能取到 a 下一级的 c,更深的层级需用递归下降 ..(如 $..c 匹配任意深度的 c)。另外过滤表达式(如 $.items[?(@.price>10)])并非所有实现都支持,使用前先确认所用库的语法兼容度。
⚠️ 使用说明与注意事项
📖关于「JSONPath 查询」 ▼

📝工具简介

JSONPath 查询。专为开发者打造的在线工具,纯前端运行,代码不离开浏览器。