【发布时间】:2018-11-15 12:14:27
【问题描述】:
我已经编写了对我的 Web API 的调用。 API 返回以 JSON 序列化的对象列表。我知道有相当合理的方法可以将单个项目从 JSON 转换为 typescript 对象,但我想不出一种方法来进行这种转换以使其返回 typescript 对象的列表。
我需要转换为 typescript 对象,因为我希望能够运行的对象中有一个函数,但不转换该函数不存在。
这是用于检索 JSON 的代码:
findTrainPage(filter = '', sortOrder = 'desc', pageNumber = 0, pageSize = 15, departStart=null, departEnd=null, origStatusWhitelist=null): Observable<Train[]>
{
//retrieves a page of trains to display in the train list
let url = AppUtils.backendApiUrl() + '/trainList/getPage';
let requestBody = { 'filter': filter, 'sortOrder': sortOrder, 'pageNum': pageNumber, 'pageSize': pageSize, 'departStart': departStart, 'departEnd': departEnd, 'origStatusWhitelist': origStatusWhitelist };
let options = new RequestOptions({ headers: AppUtils.commonHttpHeaders() });
let headers = { headers: AppUtils.commonHttpHeaders() };
return this.http.post(url, requestBody, headers).map(res => res.json()).catch(error => Observable.throw(error.json()));
}
这是我要转换到的 Train 对象:
export class Train implements TrainInterface
{
trainGUID: string;
trainSymbol: string;
createTime: string; //Should be formatted as a date, SQL table uses smalldatetime
departTime: string;
origStatus: OriginalStatuses;
badGUIDFlag: boolean;
trips: Trip[];
private _evalStatus: EvalStatuses;
get evalStatus(): EvalStatuses
{
return this.trips.reduce((min, p) => p.evalStatus < min ? p.evalStatus : min, this.trips[0].evalStatus);
}
}
我查看了以下 SO 帖子:
【问题讨论】:
标签: json angular typescript typescript2.0