0
私はこのコードを経由してオブジェクトを保存し、次のtypescriptですモデルオブジェクトuser
Typescript:プライベート変数を使用してJSONオブジェクトを逆シリアル化する方法
export class User {
constructor(
private _name: string,
private _email: string
) {}
public get name():string {
return this._name;
}
public set name(value:string) {
this._name = value;
}
get email():string {
return this._email;
}
set email(value:string) {
this._email = value;
}
}
を持っている:
let user = new User('myName', 'myEmail');
localStorage.setItem('user', JSON.stringify(user));
私はローカルストレージに見える場合は、次の文字列があります:
{"_name":"myName","_email":"myEmail"}
は、
ユーザーオブジェクトを再度取得するにはどうすればよいですか?
let user: User = JSON.parse(localStorage.getItem('user'));
console.log(user.name); // logs undefined. Should log 'myName'
console.log(user._name); // this logs 'myName'. But according to the typescript documentation this should NOT work!
これは、オブジェクトに格納されているアンダースコアと何か関係があると思います。 オブジェクトを正しく受信するにはどうすればよいですか?
'JSON.parse'はプレーンjsオブジェクト(' User'型ではありません)を返します。 'User'インスタンスを手動で作成して初期化する必要があります。 [This](http://stackoverflow.com/questions/38100853/typescript-deserializing-json-into-collection-with-multiple-types/38104840#38104840)が役立つかもしれません。 –