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)]