我需要一点关于Angular (9)的帮助。我做了一个GET请求,从后端获取用户列表:
getUsers() {
return this.http.get<User[]>(`${this._constant.baseAppUrl}/users/all`, )
.pipe(map(user => {
return user;
}));
}我的目标是获得一个类型为User Model的对象数组。相反,我得到了一个对象。

我不明白为什么。我的集成开发环境还显示,user变量是User[],但在浏览器中user的类型是"object“。
那么如何才能取回一个数组呢?
编辑:这是来自后台的答案:
{
"5ea04cfbcd595b393d78acbb": {
"isAdmin": true,
"role": "User",
"status": "cEmail",
"_id": "5ea04cfbcd595b393d78acbb",
"name": "Test",
"password": "$2b$10$re0gqblgXsfYus1mYA3yQ.Oiz4x81c3M2uxfE4tG6V7tNW1JMubXi",
"email": "dr@rootix.de",
"__v": 0
},
"5ea1f308fc8909618668384e": {
"isAdmin": true,
"role": "User",
"status": "cEmail",
"_id": "5ea1f308fc8909618668384e",
"name": "Mathias Braun",
"password": "$2b$10$zpQezfiG4xNkwOTgV4CLIeYU4MITVfL2VhlLC3rqCbjBGl5TIpavG",
"email": "mb@rootix.de",
"__v": 0
}
}发布于 2020-04-24 13:58:57
后端不会根据您提供的JSON返回Array。但您可以使用以下方法将对象转换为角度侧的数组。
修改您的Api调用函数
getUsers():Observable<User[]> {
return this.http.get<User[]>(`${this._constant.baseAppUrl}/users/all`, )
.pipe(map(response=> {
if(response){
return Object.values(response); //This will return the array of object values.
}
return []; // If response is null return empty array for safety.
}));
}现在,您的getUsers()函数将是user对象的数组。
https://stackoverflow.com/questions/61397368
复制相似问题