JsonPath学习笔记

JsonPath作用

JSONPath 可以方便对 JSON 数据结构进行内容提取。JSONPath 之于 JSON,就如 XPath 之于 XML。

语法练习

JsonPath语法练习

语法说明
JsonPath 说明
$ 文档根元素
@ 当前元素
.或[] 匹配下级元素
.. 递归匹配所有子元素
* 通配符,匹配下级元素
[ ] 标运算符,根据索引获取元素,下标从0开始
[,] 连接操作符,将多个结果拼接成数组返回,可以使用索引或别名
[start:end:step] 数据切片操作
?() 过滤表达式
( ) 脚本表达式,使用底层脚本引擎

JsonPath语法

jsonPath语法
语法示例

示例

{ "store": {
    "book": [ 
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
      },
      { "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 19.95
    }
  }
}
JsonPath 结果
$.store.book[*].author 所有book的author节点
$..author 所有author节点
$.store.* store下的所有节点,book数组和bicycle节点
$.store..price store下的所有price节点
$..book[2] 匹配第3个book节点
..book[(@.length-1)] 匹配最后一个book节点
..book[:2] 匹配前两个book节点
$..book[?(@.isbn)] 过滤含isbn字段的book节点
$..book[?(@.price<10)] 过滤price<10的book节点

你可能感兴趣的:(JsonPath学习笔记)