angular2 json2typescript - jsonConvert.deserializeObject不起作用

时间:2017-12-23 10:33:44

标签: angular

你好我是角度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时其未定义

感谢帮助者。

1 个答案:

答案 0 :(得分:0)

每个变量都需要初始化。我自己才发现的。 @JsonProperty("email", String) public email: String = "";