新しいHttpClient
の使用に問題があります。HttpClient - Json Arrayのマッピング
Iは、以下のように、reduce
を用いてUser[]
にユーザJSON配列をマッピングすることができた、前:
export class User {
constructor(
public userId: number,
public username: string,
public password: string,
public isValid: boolean,
public type: string,
public isValidPassword: boolean) {
}
}
public loadAllUsers() {
return this.http
.post('/api/admin/getUsers/', 0)
.map((res: any) => {
return new User(
res.userId,
res.username,
res.password,
res.isValid === 'Y' ? true : false,
res.type,
res.isValidPassword === 'Y' ? true : false
);
})
.reduce((x, y) => { x.push(y); return x; }, <any[]>[]);
}
を、それが/api/admin/getUsers/
応答の一部である:私は
[
{
"userId": 1,
"username": "Ebraheem Alrabee",
"password": "827ccb0eea8a706c4c34a16891f84e7b",
"isValid": "Y",
"type": "admin",
"isValidPassword": "Y"
},
{
"userId": 4,
"username": "Sami",
"password": "827ccb0eea8a706c4c34a16891f84e7b",
"isValid": "Y",
"type": "user",
"isValidPassword": "Y"
}, ...
]
これを試しました:
public loadAllUsers() {
return this.http
.post<User[]>('/api/admin/getUsers/', 0);
}
User[]
に直接デシリアライズする代わりにmap
を使用してください。isValid
のように変更したい値があります。
私は新しいものと同じことをする方法HttpClient
、誰も助けることができますか?
ちょっとしたメモとして、 '? true:false''は '==='のように 'true'または' false'を返します。 –
私はリファクタリングする必要がある古いコードです、ノートに感謝します。 –