我可以在cookie中存储数组列表吗?
我的阵列列表将是这样
itemsarray
var productId=[];
productId['id'] = 'product id';
productId['title'] = 'product-name';
itemsarray.push(productId);
0: [id: 153359796766, title: "adidas EQT Cushion ADV Shoes Men's "]
1: [id: 391912235126, title: "Sonos One Voice-Controlled Wireless Smart"]
我已经尝试了以下方法,但是不走运,它总是返回一个空白数组。我认为问题出在JSON.stringify
json_str = JSON.stringify(itemsarray);
$.cookie('ID', json_str);
console.log(json_str);
有什么解决办法吗?
答案 0 :(得分:0)
首先,您的数组应包含json。
例如:
const items = [
{id: 153359796766, title: "adidas EQT Cushion ADV Shoes Men's "},
{id: 391912235126, title: "Sonos One Voice-Controlled Wireless Smart"}
];
如果不需要该数据服务器端,则可以使用localStorage:
localStorage.setItem('items', items);
答案 1 :(得分:0)
您也可以使用localStorage进行此操作,因为大多数浏览器允许您在本地存储中存储更多数据(2019年最大为5Mb),如果不需要服务器读取这些数据,这也可以提高性能。
new Client
{
ClientId = "socialnetwork",
ClientName = "SocialNetwork",
ClientSecrets = new [] { new Secret("secret".Sha256()) },
//Flow = Flows.ResourceOwner,
AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
AllowedScopes = new [] { "socialnetwork",StandardScopes.OpenId },
Enabled = true,
AllowOfflineAccess = true
}
答案 2 :(得分:0)
所有解决方案都提供了替代方案,并建议他改为使用本地存储,这是一个很好的建议(个人而言,我从来没有使用过cookie来代替存储),但是如果OP def需要使用cookie,将是解决该问题的有效方法:
您只需执行以下操作即可存储该数组:
document.cookies = `id={$JSON.stringify(itemsArray)}`
这会将您的值存储在cookie字符串中。访问该值会更加“复杂”,因为cookie存储为由分号分隔的字符串:
cookies = 'value=thevalue;value2=the2value'
您需要做的就是用“;”分割字符串。或按照mdn网站的建议运行正则表达式:
var cookieValue = document.cookie.replace(/(?:(?:^ |。; \ s ) id \ s * \ = \ s *( [^;] )。 $)| ^。* $ /,“ $ 1”);
其中 id 代表您的Cookie密钥。
然后您只需执行JSON.parse(cookieValue)