JSONPath 可以看作定位目标对象位置的语言,适用于
JSON
文档。
JSONPath
与
JSON
的
关系相当于
XPath
与
XML
的关系,
JSONPath
参照
XPath
的路径表达式,提供了描述
JSON
文档层次结构的表达式,通过表达式对目标对象定位。
JSONPath 遵循相对简单的语法,采用了更加友好的表达式形式。接下来,通过一张表列
举
JSONPath
的语法,并与
XPath
语法进行对比介绍,如表
4-8
所示。
❤❤
喜欢的小伙伴们动动发财的小手点个关注哦么么~~~
❤❤
接下来,以一个
JSON
文档为例,分别为大家演示如何使用
JSONPath
的表达式选取
JSON
文档的对象。
JSON
文档的具体内容如下。
{
"store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-394-19394-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
通过
JSONPath
的表达式选取节点的示例代码如下。
# 选取 bicycle 对象中字段 color 的值
$.store.bicycle.color
# 选取 books 列表包含的所有对象
$.store.book[*]
# 选取 books 列表的第一个对象
$.store.book[0]
# 选取 books 列表中所有对象对应的字段 title 的值
$.store.book[*].title
# 选取 books 列表中字段 category 的值为 fiction 的所有对象
$.store.book[?(@.category=='fiction')]
# 选取 books 列表中所有 price 小于 10 的对象
$.store.book[?(@.price<10)]
# 选取 books 列表中所有含有 isb 的对象
$.store.book[?(@.isb)]