如何使用 JsonPath 获取表达式的多级对象

How to get a multilevel object on expression with JsonPath

对于

上 store/books 的当前示例

https://github.com/jayway/JsonPath

如果作者是对象

"author" : { "name" : "Joe", "lastName": "Doe" }

我如何让所有作者都知道姓氏是 Doe,我看到的所有示例都只使用数组上的简单对象。

$..author[?(@.lastName = 'Doe')]; 

我认为应该这样做。基于对 自述文件 的快速阅读。语法基于 Xpath。所以并不难理解。

  • $ 从根开始。
  • ..深度扫描
  • author select 所有作者对象。
  • [?(@.lastName = 'Doe')] 搜索 lastName = Doe
  • 的对象

获取姓氏 'Doe' 的所有作者:

$.store.book[*].author[?(@.lastName == 'Doe')] 

获取作者姓氏 'Doe' 的所有书籍:

$.store.book[?(@.author.lastName == 'Doe')]