JsonPath 简单使用

发布时间 2023-05-04 11:07:31作者: 没有梦想的java菜鸟

1.JsonPath的介绍

JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言,如Javascript,Python和PHP,Java。

JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。

2.导入依赖

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>

3.操作符介绍

操作 说明
$ 查询根元素。这将启动所有路径表达式。
@ 当前节点由过滤谓词处理。
* 通配符,必要时可用任何地方的名称或数字。
.. 深层扫描。 必要时在任何地方可以使用名称。
. 点,表示子节点
['' (, '')] 括号表示子项
[ (, )] 数组索引或索引
[start:end] 数组切片操作
[?()] 过滤表达式。 表达式必须求值为一个布尔值。

4.使用案例

json示例
{
   "A":"a123",
   "B":{
   		"A":"a258",
   	    "C":"c123",
        "M":{
            "H":"h123",
            "O":147
        }
   },
   "D":{
   		"B":111,
   		"W":11122
   }	

}
$..A 取出所有key为A的 值

代码案例

// 取出所有Key为A的值 结果为数组
Object read = JsonPath.read(str,"$..A");
System.out.println(read.toString());

结果为

["a123","a258"]
$.B..H 取出B下面所有的key值为H
Object read = JsonPath.read(str,"$.B..H");
System.out.println(read.toString());

结果为

["haha","h123"]