2016-03-07 61 views
0

如何在JavaScript Cookie中存儲對象/數組? 我想,簡單的代碼將對象/數組存儲在jQuery Cookie中

var item = { 
    price: 200, 
    company: 'Microsoft', 
    quantity: 500, 
    code: 'm33' 
} 

console.log(item); 
Cookies.set('item', item); 
console.log(Cookies.get('item')); 

它示出了第一控制檯消息的所有值,但是僅給出了「[對象的對象]」中的第二個。看起來像js-cookie無法正確處理對象。有什麼方法可以解決這個問題嗎?

+0

可以[de]序列化它。 'Cookie.set('item',JSON.stringify(item))'/'JSON.parse(Cookie.get('item'))' –

回答

1

您正在存儲一個對象,並且cookie僅允許文本。請記住,Cookie的最大長度爲4 KB,因此您無法在此處存儲大量信息(請改用localStorage)。

爲了解決這個問題,必須首先將字符串化JSON:

Cookies.set('item', JSON.stringify(item)); 

你會存儲一個字符串化的對象。要訪問它,您必須解析字符串:

console.log(JSON.parse(Cookie.get('item'))); 
+0

謝謝你的解決方案。我一直在尋找它的最後8個小時。 – Anirudh

-1

在cookie中,您只能存儲字符串。所以爲了首先存儲對象,你需要將你的對象轉換爲字符串。使用this plugin這裏有一個例子:

var people = [ 
    {"id": 123, "name": "Mazahir Eyvazli"}, 
    {"id": 128, "name": "Mayki Nayki"}, 
    {"id": 131, "name": "Mike Shinoda"} 
]; 
$.cookie("people", JSON.stringify(people)); 

如果您要訪問您的爲對象,從餅乾

// $.cookie("people") will return people object as an string 
// therefore we parse it to JSON object 
var people = $.parseJSON($.cookie("people")); 
// now we can access our object 
people[0]["id"] // --> 123 
people[1]["name"] // --> Mayki Nayki 
+0

OP已經在使用cookie庫。切換到另一個不會有任何區別 – charlietfl

相關問題