博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JsonPath 语法 与 XPath 对比
阅读量:6485 次
发布时间:2019-06-23

本文共 2402 字,大约阅读时间需要 8 分钟。

 

 

 
XPath JSONPath Description
/ $ the root object/element
. @ the current object/element
/ . or [] child operator
.. n/a parent operator
// .. recursive descent. JSONPath borrows this syntax from E4X.
* * wildcard. All objects/elements regardless their names.
@ n/a attribute access. JSON structures don't have attributes.
[] [] subscript operator. XPath uses it to iterate over element collections and for . In Javascript and JSON it is the native array operator.
| [,] Union operator in XPath results in a combination of node sets. JSONPath allows alternate names or array indices as a set.
n/a [start:end:step] array slice operator borrowed from ES4.
[] ?() applies a filter (script) expression.
n/a () script expression, using the underlying script engine.
() n/a grouping in Xpath

JSONPath expressions can use the dot–notation

$.store.book[0].title

or the bracket–notation

$['store']['book'][0]['title']

 

The following XPath expression

/store/book[1]/title

JsonPath would look like

x.store.book[0].title

or

x['store']['book'][0]['title']

 

JSONPath examples

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{ "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
    
}
  
}
}

  

 

XPath JSONPath Result
/store/book/author $.store.book[*].author the authors of all books in the store
//author $..author all authors
/store/* $.store.* all things in store, which are some books and a red bicycle.
/store//price $.store..price the price of everything in the store.
//book[3] $..book[2] the third book
//book[last()] $..book[(@.length-1)]
$..book[-1:]
the last book in order.
//book[position()<3] $..book[0,1]
$..book[:2]
the first two books
//book[isbn] $..book[?(@.isbn)] filter all books with isbn number
//book[price<10] $..book[?(@.price<10)] filter all books cheapier than 10
//* $..* all Elements in XML document. All members of JSON structure.

 需要的JAR包

json-path-0.9.1.jar

json-smart-1.2.jar

commons-lang-2.6.jar

转载地址:http://pciuo.baihongyu.com/

你可能感兴趣的文章
新手指导:教你如何查看识别hadoop是32位还是64位
查看>>
Codeforces Round #180 (Div. 2) D. Fish Weight 贪心
查看>>
Gradle sourceCompatibility has no effect to subprojects(转)
查看>>
百度指数分析
查看>>
使用Mkdocs构建你的项目文档
查看>>
三分钟读懂TT猫分布式、微服务和集群之路
查看>>
fn project 运行时配置选项
查看>>
你的leader还在考核你的千行代码Bug率吗?
查看>>
多块盘制作成一个lvm
查看>>
InnoDB多版本
查看>>
贪心算法 - 活动选择问题
查看>>
独立思考与输入、吸收
查看>>
es6 includes(), startsWith(), endsWith()
查看>>
关于azkaban上传job压缩包报错问题的解决方案
查看>>
JS版日期格式化和解析工具类,毫秒级
查看>>
百度人脸对比
查看>>
Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS
查看>>
苹果AppStore如何申请加急审核
查看>>
SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)
查看>>
Mysql一个表编码的坑,mark一下
查看>>