2016-11-07 8 views
1

SDKの機能を実行して取得したオブジェクトがあります。セッション記憶域にオブジェクトを格納しようとしたときにオブジェクトを取得しようとすると、取得したオブジェクトは元のものと同じに見えますが、新しいオブジェクトに対して操作を実行するとエラーが発生します。sessionStorageに元のオブジェクトが保存されていません

var xyzObject = some_function(); 

sessionStorage.setItem("xyzObject",xyzObject); 

var obj = JSON.parse(sessionStorage.getItem("xyzObject")); 

obj.some_other_function(); 

obj.some_other_functionが関数でないように、それはエラーを示しています。一方、xyzObject.some_other_functionは完全に機能します。

+0

[ウェブストレージAPI](https://developer.mozilla.org/en-US/docs/Web/API/Storage)は、文字列のみをサポートしています[ 'storage.setItem(のkeyName、keyValueの)' ](https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem)ここで 'keyName'と' keyValue'は['DOMString']です(https://developer.mozilla.org/ja-JP/docs/Web/API/DOMString)s – Andreas

+0

オブジェクトを保存するときにJSON.stringifyを試してください。それは文字列としてしか格納できません。 – juju

答えて

1

sessionStorage.setItem('xyzObject', JSON.stringify(xyzObject); 

を試してみて、使用して取得:

JSON.parse(sessionStorage.getItem('xyzObject')); 
+0

私は上記の実装のみを使用しています。 –

1

あなたがのsessionStorageかのlocalStorageでオブジェクトを格納することはできません。唯一可能な方法は、オブジェクトを文字列化してsessionStorageに保存し、sessionStorageからオブジェクトを受け取ると、そのオブジェクトをJSONに解析するだけです。

var xyzObject = some_function(); 

sessionStorage.setItem("xyzObject",JSON.stringify(xyzObject)); 

var stringData = sessionStorage.getItem("xyzObject"); 

var obj = JSON.parse(stringData); 

obj.some_other_function(); 
+0

既に実装されています..まだオブジェクトは同じではありません.. –

関連する問題