C# 将服务器返回的内容映射到Angular服务中的typescript类型

C# 将服务器返回的内容映射到Angular服务中的typescript类型,c#,angular,typescript,rxjs,C#,Angular,Typescript,Rxjs,我正在从服务器接收类型为Event的数组 public int Id { get; set; } public string Name { get; set; } public DateTime Start { get; set; } public DateTime End { get; set; } 在Angular和TypeScript中,我需要转换为以下类,因为我在UI中有4个单独的选择器2个日期选择器,2个时间选择器: id: number; name: string; s

我正在从服务器接收类型为Event的数组

public int Id { get; set; }
public string Name { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
在Angular和TypeScript中,我需要转换为以下类,因为我在UI中有4个单独的选择器2个日期选择器,2个时间选择器:

  id: number;
  name: string;
  startDate: Date;
  startTime: Date;
  endDate: Date;
  endDatetime: Date;
如何在event.service.ts中更改以下内容,以使用自定义代码进行映射,然后允许组件简单地订阅它

  getEvents(): Observable<Event[]> {
    return this.http.get<Event[]>(this.eventsUrl);
  }

我不知道您打算如何更改数据,因此我将给出自己的示例:

[{
    id: 1,
    name: "John"
}]
数据模型角度:

export class Person {
    public id: Number;
    public name: string;
    public idName: string;
}
服务代码:

getEvents(): Observable<Event[]> {
    return this.http.get<any[]>(this.eventsUrl).map<any[], Person[]>(o => {
        let result = [];
        for (let item of o) {
            let p: Person = {
                id: item.id,
                name: item.name,
                idName: item.id + ": " + item.name
            };
            result.push(p);
        }
        return result;
    });
}

我没有测试过它,但是类似的东西会处理返回的数据。

.mapobject=>newObject?@John不认为这会起作用来自服务器的对象有两个属性,需要分解为四个属性。如果.map不适用于您,您可能需要进一步澄清您的情况。我添加了一个map示例,以防它有所帮助。