在线 JSON Path 查询工具,通过表达式提取 JSON 中的指定数据
使用场景
很多后端 API 返回的 JSON 数据特别大,嵌套层次可能有四五层,你只想要其中某一个字段的值。手写去翻?太费劲了。比如一个电商订单接口返回的数据包里,你想提取"所有订单中金额大于 100 元的商品名称",用 JSON Path 写一个表达式 $.orders[?(@.amount > 100)].productName,一秒钟就能筛出来。做数据清洗和处理的时候效率拉满。
做接口测试和自动化测试的人也是高频用户。你写了一个接口用例,断言返回数据中的某个字段值是否正确。但你得先知道这个字段的 JSON Path 表达式怎么写——是把它们单独写出来。比如验证返回的 data.users[0].profile.name 是不是"张三",先用这个工具试一下表达式能不能匹配到正确数据,再写到测试脚本里,就不用在脚本里反复调试了。
数据迁移和 ETL 场景也很实用。你需要从旧系统的 JSON 数据里提取特定字段映射到新系统。把所有旧数据贴进去,写几个 JSON Path 表达式,把需要提取的数据一次性批量抽出来。比起手动解析正则匹配,简单可靠太多了。
常见问题
问:JSON Path 和 XPath 有什么区别?
答:JSON Path 用于从 JSON 数据中提取数据,XPath 用于从 XML 文档中定位节点。语法上 JSON Path 使用 $ 表示根节点、. 表示子节点、[] 表示数组索引或过滤条件。XPath 使用 / 分割路径、[] 表示条件。两者概念相通但语法不同。
问:支持哪些 JSON Path 语法?
答:支持最常见的语法,包括根节点 $、子节点 .、通配符 *、数组索引 [0]、切片 [0:5]、过滤条件 [?(@.price>10)]、深度扫描 .. 等。基本覆盖了日常开发中的大部分使用场景。
问:查询结果可以导出吗? 答:查询匹配到的结果会在页面中高亮显示或单独列出。你可以直接复制查询结果。部分实现也支持将匹配到的多个结果以 JSON 数组的形式导出。
相关工具推荐
- JSON 格式化/压缩工具 - JSON 数据的格式化与验证
- JSON ↔ CSV 互转工具 - JSON 与 CSV 格式相互转换
- 正则表达式测试 - 正则表达式匹配测试工具