当前位置:   article > 正文

JsonPath_jsonpath 父元素 子元素 孙元素 满足其一即可

jsonpath 父元素 子元素 孙元素 满足其一即可

JsonPath语法要点:

  • $ 表示文档的根元素
  • @ 表示文档的当前元素
  • .node_name['node_name'] 匹配下级节点
  • [index] 检索数组中的元素
  • [start:end:step] 支持数组切片语法
  • * 作为通配符,匹配所有成员
  • .. 子递归通配符,匹配成员的所有子元素
  • (<expr>) 使用表达式
  • ?(<boolean expr>)进行数据筛选
XPathJsonPath说明
/$文档根元素
.@当前元素
/.[]匹配下级元素
..N/A匹配上级元素,JsonPath不支持此操作符
//..递归匹配所有子元素
**通配符,匹配下级元素
@N/A匹配属性,JsonPath不支持此操作符
[][]下标运算符,根据索引获取元素,XPath索引从1开始,JsonPath索引从0开始
|[,]连接操作符,将多个结果拼接成数组返回,可以使用索引或别名
N/A[start:end:step]数据切片操作,XPath不支持
[]?()过滤表达式
N/A()脚本表达式,使用底层脚本引擎,XPath不支持
()N/A分组,JsonPath不支持

注意:

  • JsonPath的索引从0开始计数,XPath从1开始
  • JsonPath中字符串使用单引号表示,例如:$.store.book[?(@.category=='reference')]中的'reference'

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
}
},
"expensive": 10
}

XPathJsonPathResult
/store/book/author$.store.book[*].author所有book的author节点
//author$..author所有author节点
/store/*$.store.*store下的所有节点,book数组和bicycle节点
/store//price$.store..pricestore下的所有price节点
//book[3]$..book[2]匹配第3个book节点
//book[last()]$..book[(@.length-1)],或 $..book[-1:]匹配倒数第1个book节点
//book[position()<3]$..book[0,1],或 $..book[:2]匹配前两个book节点
//book[isbn]$..book[?(@.isbn)]过滤含isbn字段的节点
//book[price<10]$..book[?(@.price<10)]过滤price<10的节点
//*$..*递归匹配所有子节点

点击在线校验JSONPath站点进行验证JsonPath的执行效果。

| JsonPath (点击链接测试)                                      | 结果                                                         || ------------------------------------------------------------ | ------------------------------------------------------------ || [](http://jsonpath.herokuapp.com/?path=..author.store.*) | 所有的东西,书籍和自行车                                     || [](http://jsonpath.herokuapp.com/?path=..book[2]..book[2]) | 倒数的第二本书                                               || [](http://jsonpath.herokuapp.com/?path=..book[:2]..book[1:2]) | 从索引1(包括)到索引2(排除)的所有图书                     || [](http://jsonpath.herokuapp.com/?path=..book[2:]..book[?(@.isbn)]) | 获取json中book数组中包含isbn的所有值                         || []| 获取json中book数组中price<10的所有值                         || [] | 获取json中book数组中price<=expensive的所有值                 || [] | 获取json中book数组中的作者以REES结尾的所有值(REES不区分大小写) || [](http://jsonpath.herokuapp.com/?path=..book.length()`](http://jsonpath.herokuapp.com/?path=$..book.length()) | 获取json中book数组的长度                                     |

$…[?(@.OpenFlag==1)].SubAccountNo

https://www.cnblogs.com/youring2/p/10942728.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/1005489
推荐阅读
相关标签
  

闽ICP备14008679号