Ионные наблюдаемые сгруппированные свойства - PullRequest
0 голосов
/ 16 мая 2018

Я использую Ionic и запрос Observable httpClient и хотел бы использовать pluck() для получения данных в требуемом формате. У меня есть вывод json из API-вызова Google Place, который я хочу в определенном формате.

Формат вывода API:

{
  "html_attributions" : [],
  "next_page_token" : ...,
  "status" : "OK",
  "results" : [
      {
      "geometry" : {
        "location" : {
          "lat" : 52.693031,
          "lng" : -2.53443
        }
      },
      ...
    },
    {
      "geometry" : {
        "location" : {
          "lat" : 52.3841398,
          "lng" : -2.3740612
        }
      },
      ...
    },
  ]
}

Желаемый формат:

[
  {
    "location" : {
      "lat" : 52.693031,
      "lng" : -2.53443
    }
  },
  {
    "location" : {
      "lat" : 52.693031,
      "lng" : -2.53443
    }
  },
  ...
]

Я прочитал здесь , что можно использовать pluck() для вложенных свойств.

фрагмент того, что я пытаюсь:

let url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=' +
  this.location.latitude +
  ',' + 
  this.location.longitude + 
  '&radius='+this.radius + 
  '&type=park&key=' + 
  this.placeApiKey;

this.places = this.httpClient.get(url);

this.places
.pipe(
  pluck('results', 'geometry')
)
.subscribe(data => {
  console.log(data);
});

Кажется, что он может вырвать только первый уровень, но не следующий. Может кто-нибудь указать, что я делаю не так.

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете получить нужный формат, используя карту rxjs и карту массива :

this.places
.pipe(
  map(places => places.results.map(result => result.geometry))
)
...