抓取JSON并将其映射到对象

时间:2018-08-01 14:27:17

标签: json angular rxjs ngrx angular-httpclient

我想知道如何从在线托管的链接中获取JSON数据。我正在尝试在服务中获取经纬度坐标,然后在组件中使用它们。

JSON格式类似于:

"devices"{[ "lat": 1234567 "lon": 1234567 ]}

我正在尝试这样映射JSON对象:

 private busFeed = 'azure.com/file.json';

  constructor(private _http: HttpClient) {}


   getFirstDevice() {
     return this._http.get(this.busFeed).pipe(
      map(data => data),
      tap(data => console.log('Device Info: ' + JSON.stringify(data)))
     );
   }

我的TransportComponent是这样的:

this._transportFeed.getFirstDevice()
  .subscribe(transportFeed => {
    this.devices = transportFeed;
  });

我面临的问题是,当我只需要纬度和经度坐标时,这将从JSON文档中获取所有信息。我希望在.ts文件中而不在.html文件中显示,因为我想在地图的地图标记中绘制这些坐标。

1 个答案:

答案 0 :(得分:0)

this._transportFeed.getFirstDevice()
   .subscribe(transportFeed => {
      this.devices = transportFeed.map(obj => ({
          lat: transportFeed.lat,
          lon: transportFeed.lon
     })
  });

getFirstDevice() {
 return this._http.get(this.busFeed).pipe(
  map(data => ({ lat: data.lat, lon: data.lon})),
  tap(data => console.log('Device Info: ' + 
  JSON.stringify(data)))
 );
  }