2016-11-05 2 views
1

Учитывая следующий JSON:Использование JsonPath, когда вы не знаете, если вы имеете дело с объектом или массивом

{ 
    "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 
     } 
    }, 
    "expensive": 10 
} 

Мы можем использовать выражение пути, как $.store.book[*].author получить все авторы. Но что, если мы не знаем заранее, является ли book массивом или объектом, например. что, если мы могли бы иметь выше JSON, но и что-то вроде этого:

{ 
    "store": { 
     "book": { 
       "category": "reference", 
       "author": "Nigel Rees", 
       "title": "Sayings of the Century", 
       "price": 8.95 
     }, 
     "bicycle": { 
      "color": "red", 
      "price": 19.95 
     } 
    }, 
    "expensive": 10 
} 

Есть ли «общий путь», который может быть использован для получения всех авторов в любом случае?

ответ

1

Да, вы можете использовать:

$.store..author 

Тестируемые здесь:

https://jsonpath.curiousconcept.com/

«Надеюсь, что это помогает.

+0

Есть ли способ, которым я мог бы включить 'book' в путь? Если есть книга - автор и периодика -> автор, я бы вернул оба набора авторов с этого пути, верно? Что делать, если я хочу только вернуть авторов книги? – Adam

+0

Несомненно. Затем вы можете написать: $ .store.book..author, который также работает с формами JSON, для захвата «автора» (ов) только тогда, когда потомки из «книги» (ов) – YSharp

Смежные вопросы