2015-12-11 30 views
1

是否有可能對對象進行字符串化,然後將其保存到Cookie中,然後在下次用戶登錄時解析並解析它以恢復正常狀態?Cookie,對象和JSON

試圖把它塞進一句話。下面是我的意思的例子:

var theObject = { 
    oProp : 10, 
    oProp : true 
}; 

var jString = JSON.stringify(theObject); 
createCookie("object", jString); 
var objectRetrieved = JSON.parse(readCookie("object")); 

theObject = objectRetrieved; 

如果這是可能的,關於可單獨存儲每個對象屬性/值是什麼?

在此先感謝!

+1

如果你的目標是存儲數據的時間超過一個會話,我相信你可以使用localStorage API,它需要你對數據進行串聯處理,並且在檢索數據時你需要根據需要解析它。如果您僅在會話期間需要數據,則可以使用sessionStorage API。要回答你的問題,是的,這是可能的,也可以單獨存儲每個鍵值對。 – lmenus

回答

1

如果您的jQuery在這裏使用是這個 -

不要直接說的是JSON.Stringify。相反,你可以設置$.cookie.json = true;

然後將對象存儲到cookie的清潔方法。

var myObj= { //what ever your properties } 
$.cookie('myObj', myObj); 

當從餅乾回讀,我會做

var myObj = $.cookie('myObj'); 
alert('Property name is ' + myObj.YourPropertyName); 
+0

這個問題根本沒有提到jQuery。另外,'$ .cookie.json' API是一個錯誤。查看討論[這裏](https://github.com/carhartl/jquery-cookie/pull/285)。我不會鼓勵人們使用它。相反,我會建議使用'stringify'或升級到最新版本[version 1.5.1](https://github.com/js-cookie/js-cookie/releases/tag/v1.5.1),它會引入更好的和可理解的API來處理JSON。 –

1

只是作爲替代cookie的方法,也可以使用本地存儲,像這樣:

var myObj = {"name":"n1","val":3,"bool":true}; 
localStorage.setItem('save', JSON.stringify(myObj)); 
var tmp = localStorage.getItem('save'); 
var round_trip = JSON.parse(tmp)