簡體   English   中英

如何使用jQuery $ .cookie()在cookie中存儲對象數組?

[英]How do I store an array of objects in a cookie with jQuery $.cookie()?

我有一個javascript對象列表:

var people = [
   { 'name' : 'Abel', 'age' : 1 },
   { 'name' : 'Bella', 'age' : 2 },
   { 'name' : 'Chad', 'age' : 3 },
]

我嘗試使用jQuery $ .cookie()將它們存儲在瀏覽器cookie中:

$.cookie("people", people);

然后,我檢索此cookie,然后嘗試將另一個對象推入其中:

var people = $.cookie("people");
people.push(
    { 'name' : 'Daniel', 'age' : 4 }
);

但是,這不起作用; 我在Firebug中分析了這段代碼,並且控制台注意到people是一個字符串( "[object Object],[object Object],[object Object]" )並且push函數不存在。

到底是怎么回事? 存儲和檢索對象列表的正確方法是什么?

Cookie只能存儲字符串。 因此,您需要將對象數組轉換為JSON字符串。 如果你有JSON庫,你可以簡單地使用JSON.stringify(people)並將其存儲在cookie中,然后使用$.parseJSON(people)進行非字符串化。

最后,您的代碼如下所示:

var people = [
   { 'name' : 'Abel', 'age' : 1 },
   { 'name' : 'Bella', 'age' : 2 },
   { 'name' : 'Chad', 'age' : 3 },
];
$.cookie("people", JSON.stringify(people));
// later on...
var people = $.parseJSON($.cookie("people"));
people.push(
    { 'name' : 'Daniel', 'age' : 4 }
);
$.cookie("people", JSON.stringify(people));

我今天嘗試了這個,但無法讓它發揮作用。 后來我發現這是因為我有三個非常大的物體,我試圖保存在一個餅干中。

我在這方面工作的方式是將信息存儲在瀏覽器本地存儲中。

例:

localStorage.setItem("test2", JSON.stringify(obj) )

localStorage.getItem("test2")

有關本地存儲的更多信息: cookies與本地存儲

我4小時的時間發泄,不要犯同樣的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM