Angular 角度http.get-转换结果
角度8 我有一个http.get:Angular 角度http.get-转换结果,angular,typescript,angular-http,Angular,Typescript,Angular Http,角度8 我有一个http.get: this.http.get("https://BahaiPrayers.net/api/prayer/Languages") .subscribe(data => { //return a different object }); 来自服务器的json如下所示: { Id: 1, Name: "English", },.... 我需要http.get将数据转换为此类的typescript数组: export class L
this.http.get("https://BahaiPrayers.net/api/prayer/Languages")
.subscribe(data => {
//return a different object
});
来自服务器的json如下所示:
{
Id: 1,
Name: "English",
},....
我需要http.get将数据转换为此类的typescript数组:
export class Language {
languageId: number;
englishName: string;
}
有没有办法将http.Get转换为我的对象?您可以在服务中尝试以下操作:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Injectable({ providedIn: 'root' })
export class LanguageService {
constructor(private httpClient: HttpClient) { }
getLanguages(): Observable<Language[]> {
return this.httpClient.get<any[]>('https://BahaiPrayers.net/api/prayer/Languages')
.pipe(
//** This is where the tranformation happens
map(lanuages => lanuages.map(language => (
{ languageId: language.Id, englishName: language.Name })))
//** change language.Name to language.English
//** if you need the English name of the language
);
}
}
export class Language {
languageId: number;
englishName: string;
}
您可以在服务中尝试以下操作:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Injectable({ providedIn: 'root' })
export class LanguageService {
constructor(private httpClient: HttpClient) { }
getLanguages(): Observable<Language[]> {
return this.httpClient.get<any[]>('https://BahaiPrayers.net/api/prayer/Languages')
.pipe(
//** This is where the tranformation happens
map(lanuages => lanuages.map(language => (
{ languageId: language.Id, englishName: language.Name })))
//** change language.Name to language.English
//** if you need the English name of the language
);
}
}
export class Language {
languageId: number;
englishName: string;
}
从最近的Angular版本开始,如果对象与JSON共享相同的属性,则无需再映射结果(将自动完成): 然后在服务中:
getLanguages(): Observable<Language[]> {
return this.httpClient.get<Language[]>('https://BahaiPrayers.net/api/prayer/Languages');
}
getLanguages():可观察{
返回此.httpClient.get('https://BahaiPrayers.net/api/prayer/Languages');
}
自最近的Angular版本以来,如果对象与JSON共享相同的属性,则不再需要映射结果(将自动完成):
然后在服务中:
getLanguages(): Observable<Language[]> {
return this.httpClient.get<Language[]>('https://BahaiPrayers.net/api/prayer/Languages');
}
getLanguages():可观察{
返回此.httpClient.get('https://BahaiPrayers.net/api/prayer/Languages');
}
请发布http.get数据的内容请发布http.get数据的内容