你好我是角度2的新手,我从google,facebook和linkedin用户的数据中提取。我正在尝试将对象反序列化为我创建的名为UserLogin的实例,但它不起作用。
signIn方法:
signIn(provider: string) {
this.sub = this._auth.login(provider).subscribe(
(loginDataObj) => {
console.log(loginDataObj);
let jsonConvert: JsonConvert = new JsonConvert();
let user: UserLogin = jsonConvert.deserializeObject(loginDataObj, UserLogin);
console.log(user.email);
//user data
//name, image, uid, provider, uid, email, token (accessToken for Facebook & google, no token for linkedIn), idToken(only for google)
}
)
}
UserLogin类:
@JsonObject
export class UserLogins implements IUserLogin{
@JsonProperty("email", String)
public email: String;
@JsonProperty("idToken", String)
public idToken: String;
@JsonProperty("image", String)
public image: String;
@JsonProperty("name", String)
public name: String;
@JsonProperty("provider", String)
public provider: String;
@JsonProperty("token", String)
public token: String;
@JsonProperty("uid", String)
public uid: string;
}
当我对其打印的数据执行console.log时确定但是当我尝试反序列化并打印user.email时其未定义
感谢帮助者。
答案 0 :(得分:0)
每个变量都需要初始化。我自己才发现的。
@JsonProperty("email", String)
public email: String = "";