JSONPath在线查询工具:使用JSONPath表达式从JSON数据中提取特定字段,支持复杂的过滤条件、数组操作和递归搜索,让JSON数据查询变得简单高效。

暂无可显示的表格数据
JSONPath语法帮助

基础语法

$ - 根节点
.property - 访问属性
['property'] - 括号访问
[n] - 数组索引
[*] - 所有元素

高级用法

.. - 递归搜索
[start:end] - 数组切片
[?(@.condition)] - 过滤表达式
[-1] - 最后一个元素
[(@.length-1)] - 倒数元素

过滤操作符

== - 等于
!= - 不等于
< - 小于
> - 大于
<= - 小于等于
>= - 大于等于
=~ - 正则匹配
in - 包含于
结果数量: 0 查询耗时: 0ms 表达式状态:

评论

您可以在这里对JSONPath工具提需求或者提bug。提交成功后自己可见,其他用户待审核通过后才可见。

JSONPath查询使用说明

JSONPath是一种用于从JSON数据中提取特定值的查询语言,类似于XPath在XML中的作用。本工具提供了完整的JSONPath表达式支持,帮助您快速从复杂的JSON数据结构中提取所需信息。

基本语法

JSONPath表达式以$符号开头,表示根对象:

  • $:根对象
  • .:子对象访问符
  • []:数组索引或属性访问
  • *:通配符,匹配所有元素
  • ..:递归下降,搜索所有子级
  • ?:过滤表达式

常用表达式示例

以下是一些常用的JSONPath表达式:

  • $.name:获取根对象的name属性
  • $.users[0]:获取users数组的第一个元素
  • $.users[*].name:获取所有用户的name属性
  • $.users[0:2]:获取users数组的前两个元素
  • $.users[-1]:获取users数组的最后一个元素
  • $..name:递归查找所有name属性
  • $.users[?(@.age > 18)]:过滤年龄大于18的用户

过滤表达式

使用过滤表达式可以根据条件筛选数据:

  • ?(@.age > 18):年龄大于18
  • ?(@.name == 'John'):名称等于John
  • ?(@.price < 100):价格小于100
  • ?(@.active == true):状态为激活
  • ?(@.tags[*] == 'featured'):包含featured标签

应用场景

  • API响应数据解析和提取
  • 配置文件中特定值的查找
  • 数据分析和报表生成
  • JSON数据的批量处理
  • 前端数据状态管理
  • 测试用例中的数据验证

使用技巧

  • 先确保JSON数据格式正确,再编写JSONPath表达式
  • 使用通配符*可以快速匹配所有同级元素
  • 递归下降..在不确定数据层级时特别有用
  • 过滤表达式中的@表示当前元素
  • 数组索引支持负数,-1表示最后一个元素
  • 可以组合使用多个操作符构建复杂查询

注意事项

  • JSONPath表达式区分大小写
  • 属性名包含特殊字符时需要用引号括起来
  • 过滤表达式中的字符串值需要用单引号
  • 某些复杂表达式可能影响查询性能
  • 建议在大型数据集上测试表达式性能

评论

您可以在这里对JSONPath查询提需求或者提bug。提交成功后自己可见,其他用户待审核通过后才可见。