Извлечение пути Json с помощью фильтров

#json

#json

Вопрос:

Мне нужно получить путь к элементу — перечислите все номера libraryphone

У меня есть следующая структура json:

 {
   library:[{
          libraryphone: 9898989898,
          location:{
              address:{
                   street:123 garden ave,
                   city: Dublin
              }
          },
         {
         libraryphone: 9090909090,
         location:{...}
        }, {
        libraryphone: 9797979797,
        location: {...}
       }
    }]
}
  

В приведенном выше json у меня есть несколько телефонов и адресов библиотеки. Итак, мне нужно собрать все телефонные номера при условии, что город существует.
Я пытался:

$.library[?(@.location.address.city)].libraryphone

Я понимаю, что для получения библиотечных файлов все, что мне нужно сделать, это

$.library[*].libraryphone

Но мне нужно иметь условие проверки, существует ли город или нет.

Комментарии:

1. Какой язык / инструмент вы используете?

2. Для этого инструмента я использую любой онлайн-оценщик путей для проверки, публикуя json

3. Это недопустимый JSON

4. Да, я это понимаю. Мой вопрос заключается в том, как создать этот допустимый json с фильтром и для всех условий

5. Что не так с $.library[?(@.location.address.city)].libraryphone ? Это должно работать для walid JSON с представленной структурой.