欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > Java|Java 中 JSONPath 的使用

Java|Java 中 JSONPath 的使用

2025/9/14 1:07:15 来源:https://blog.csdn.net/weixin_44435110/article/details/141964428  浏览:    关键词:Java|Java 中 JSONPath 的使用

文章目录

    • 概述
    • 1. JSONPath 基础语法
      • 1.1 基本操作符
      • 1.2 常见示例
    • 2. JSONPath 在 Java 中的使用
      • 2.1 依赖配置
      • 2.2 示例代码
        • 示例 JSON 数据
        • Java 代码
        • 运行结果
      • 2.3 解析 JSON 文件
      • 2.4 常见操作
    • 3. 进阶功能
    • 4. 总结

概述

JSONPath 是一种用于从 JSON 数据结构中提取特定元素的查询语言,类似于 XPath 用于 XML。它提供了强大的查询功能,允许用户通过简单的表达式获取 JSON 文档中的特定数据。本文将介绍 JSONPath 的基本语法,并提供在 Java 中如何使用 JSONPath 的示例代码。


1. JSONPath 基础语法

JSONPath 的查询表达式以 $ 开始,表示根元素,支持多种操作符,如 .[]* 和过滤器 [?()] 等,用来进行数据的提取和过滤。

1.1 基本操作符

  • 根节点$ 表示根元素。

  • 成员访问

    • .:直接访问子元素,例如 $.store.book
    • []:使用键或索引进行访问,例如 $['store']['book']
  • 通配符* 用于匹配所有的子元素。例如 $.store.book[*] 匹配所有的书籍元素。

  • 数组操作

    • [index]:选择指定下标的数组元素,例如 $.store.book[0] 选择第一个书籍。
    • [start:end]:选择范围内的数组元素,例如 $.store.book[0:2] 选择前两个书籍。
  • 过滤器[?()] 用于过滤元素。表达式 @ 代表当前元素。例如,$.store.book[?(@.price > 10)] 返回价格大于 10 的书籍。

  • 递归搜索.. 用于递归搜索整个 JSON 结构。例如,$.store..price 会查找所有名为 price 的元素。

1.2 常见示例

给定以下 JSON 数据:

{"store": {"book": [{"category": "fiction", "price": 8.99, "title": "Book 1"},{"category": "science", "price": 12.99, "title": "Book 2"}],"bicycle": {"color": "red", "price": 19.95}}
}
  • 获取所有书籍的价格:$.store.book[*].price 返回 [8.99, 12.99]
  • 获取价格高于 10 的书籍:$.store.book[?(@.price > 10)].title 返回 ["Book 2"]
  • 获取所有元素中的 price$.store..price 返回 [8.99, 12.99, 19.95]

2. JSONPath 在 Java 中的使用

在 Java 中,可以使用 Jayway 的 JSONPath 实现来处理 JSON 数据。该库支持大多数 JSONPath 功能,并且易于集成和使用。

</

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词