【发布时间】:2021-01-11 15:04:54
【问题描述】:
在我的后端,我的 ID 很长。遗憾的是 Angular 或更好的 Javascript 不太喜欢长 id 并且会舍入大量数字。由于这对于 ID 来说不是最优的,因此我需要在将其解析为 json 对象之前将其从 long 转换为字符串:
this.http.get<Player>(this.getUrl() + '/' + id);
我的播放器类:
export class Player {
id: string;
name: string;
}
如何在从它们创建对象之前将 id 转换为字符串?
这是后端答案:
{ "id": 12345, "name": "Test" }
这是我在转换为对象之前需要将其转换为的:
{ "id": "12345", "name": "Test" }
【问题讨论】:
-
使用管道和地图来改变响应
-
您可以使用 RxJS
map运算符来转换响应:this.http.get(this.getUrl() + '/' + id).pipe(map(p => ({...p, id: String(p.id)}) as Player))。 -
我认为这一点为时已晚,因为它已经映射到一个对象并且 ID 已经四舍五入了:/
-
@julien-100000:“四舍五入”到底是什么意思?期望值是多少,四舍五入到什么程度?
-
预期:9180021352890858370,实际:9180021352890858000 这就是原因:stackoverflow.com/questions/5525783/…