JsonPath 语法 与 XPath 对比

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 predicates. 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

时间: 2024-10-13 22:50:46

JsonPath 语法 与 XPath 对比的相关文章

[SoapUI] JsonPath 语法 与 XPath 对比

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

MySQL与Oracle的语法区别详细对比 (转)

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

MySQL与Oracle的语法区别详细对比

Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> se

python和ruby语法的简单对比

进入交互解释器 python irb / pry 设置编码 #coding=utf-8   #coding:utf-8 包管理 easy_install/pip  gempip install Markdown gem install Markdown 注释 python单行注释# 开头python多行注释使用三个单引号(''')或三个单引号(""").''' 多行注释1多行注释2 ''' ruby单行注释用#开头ruby多行注释使用  =begin =end=begin多行

Xpath语法学习

贴几个我学习Xpath的参考 1 基本使用的参考 XPath学习:基本语法(一) 2 较为详细且清晰例子参考 XPath 语法 3 详细语法参考 Xpath语法格式整理 4 官方参考 XPath 教程 XPath学习:基本语法(一)

Oracle和mysql语法与函数的对比

MySQL的Data_ADD函数与日期格式化函数说明 DATE_ADD(date,INTERVAL expr type) DATE_SUB(date,INTERVAL expr type) 这些函数执行日期运算. date 是一个 DATETIME 或DATE值,用来指定起始时间. expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值.  Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-'开头. type 为关键词,它指示了表达式被解释的方式. 关键词INTERVA及 t

XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。

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 <?xml version="1.0" encoding="utf-8" ?> <pets>   <cat color="black" weight="10">     <price>100</price>    

# 深入浅出爬虫之道: Python、Golang与GraphQuery的对比

深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具有清晰的数据结构,但是DOM结构不够规范,无法通过单独的选择器定位页面元素,对页面的解析造成了一些曲折.通过这个页面的解析过程,深入浅出的了解爬虫的解析思想与这些语言之间的异同. 深入浅出爬虫之道: Python.Golang与GraphQuery的对比 一.前言 1. 语义化的DOM结构 2. 稳

jQuery 语法

jQuery 语法 jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作. 基础语法是:$(selector).action() 美元符号定义 jQuery 选择符(selector)"查询"和"查找" HTML 元素 jQuery 的 action() 执行对元素的操作 示例 $(this).hide() - 隐藏当前元素 $("p").hide() - 隐藏所有段落 $(".test").hide()