2015-01-30 6 views
1

В текущем примере магазина/книг наКак получить многоуровневый объект на экспрессию с JsonPath

https://github.com/jayway/JsonPath

Если автор его объект

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

Как я мог получить все авторы что lastName - Doe, все примеры, которые я видел, используют только простые объекты на массивах.

ответ

0

Чтобы получить все автор с фамилией 'Doe':

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

Чтобы получить все книги авторов с фамилией 'Doe':

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

Я думал то же самое, но не работал, возможно, я использую старую версию json-path. –

+0

Я тестировал его здесь: http://jsonpath.curiousconcept.com/ –

+0

попробуйте здесь http://jsonpath.herokuapp.com/ – kalle

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

Должен сделать это, я думаю. На основе быстрого считывания readme. Синтаксис основан на Xpath. Так что это не так сложно понять.

  • $ Старт в корень.
  • .. глубокое сканирование
  • author все объекты автора.
  • [?(@.lastName = 'Doe')] поиск объектов, где LastName = Doe