gpt4 book ai didi

javascript - 如何将 json 响应对象动态映射到实体?

转载 作者:太空狗 更新时间:2023-10-29 18:30:52 24 4
gpt4 key购买 nike

我正在实现 ng2,其中我的 user.service.ts 调用 REST 服务并返回 json,如下所示:

getUser(id: number): Promise<User> {
return this.http.get('http://localhost:4000/users/1')
.toPromise()
.then(response => response.json())
}

返回的对象如下所示:

{
"Id":"1"
"FirstName":"John"
"LastName":"Smith"
}

我需要将其转换为我的 ng2 用户实体,如下所示:

export class User 
{
Id: number;
FirstName: string;
LastName: string;
}

我想以我可以作为模式利用的最通用的方式来执行此操作。例如,像这样的东西:

var user = userResponse.map(User);

我希望它使用反射或类似的动态技术,以便映射自动发生而无需任何额外的显式编码。在 ng2 中执行此操作的好方法是什么?

最佳答案

根据评论,您似乎想避免在您的类中使用构造函数。那么,这里“最简单”的解决方案是使用 Object.assign():

getUser(id: number): Promise<User> {
return this.http.get('http://localhost:4000/users/1')
.map(res => Object.assign(new User(), res.json()))
.toPromise()
}

现在您的数据是 User 的一个实例。

演示:http://plnkr.co/edit/Gzi6tjZzTizDhlMCD1y9?p=preview (检查控制台)

关于javascript - 如何将 json 响应对象动态映射到实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45448199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com