[英]Scream of the day - Javascript serialising arrays in different ways
這在當下令我很煩惱:
考慮一個包含2個值的數組:
var myArray = new Array();
myArray.push(21031);
myArray.push(21486);
使用jquery和toJSON將其存儲在cookie中時,cookie的值如下所示:
["21031","21486"]
現在考慮一個單值的數組:
var myArray = new Array();
myArray.push(21239);
使用jquery和toJSON將其存儲在cookie中時,cookie的值如下所示:
21239
這對我來說幾乎完全沒用,因為當我從cookie中提取項目時,一個回來作為單個值,另一個回來作為一個我可以迭代的數組....啊!
為什么?
我建議使用json2.js'JSON.stringify 。 這兩種情況都是正確的:
// [] is the same as new Array();
var foo = [];
foo.push(1);
foo.push(2);
JSON.stringify(foo); // "[1, 2]"
var bar = [];
bar.push(1);
JSON.stringify(bar); // "[1]"
此外,當您使用json2.js API時,您的代碼會自動利用新瀏覽器中的瀏覽器本機功能。
你做錯了什么。 無論你使用什么JSON lib(假設它確實有效),序列化:
[21031, 21486]
應該產生這個:
"[21031,21486]"
你發布的不是["21031","21486"]
。 這看起來像是在序列化各個元素。 發布更多代碼。
Cookies是字符串,所以你要做的就是存儲數組的字符串序列化。 如果我做:
document.cookie = [1, 2].toString()
然后document.cookie的值為“1,2”,這不是一個數組。
編輯:因為toJSON不是一個原生的jQuery方法,它可能來自一個插件。 你檢查過插件文檔了嗎? 或者,嘗試使用其他預期的插件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.