繁体   English   中英

从cookie存储和检索json对象

[英]storing and retrieving json objects to / from a cookie

我试图将json对象存储在cookie中,但是遇到一些问题。 我可以这样创建我的对象:

product = {
   "name" : "prodname",
   "quantity" : 4
}

然后,我将此对象保存在我的cookie中。 随着添加更多产品(将其作为购物篮),我通过在cookie字符串的末尾附加新对象来添加其他字符串(因此,我本质上有许多小的单独对象)。 我无法从cookie字符串中获取对象。 当我尝试从cookie中读取对象时, $.parseJSONeval失败。 任何帮助,将不胜感激。

它可能应该像这样:

{"products": [
    {
       "name" : "prodname",
       "quantity" : 4
    },
    {
       "name" : "prodname2",
       "quantity" : 3
    }
]}

[]表示数组。 当您要添加其他产品时,可以从cookie加载它,更新阵列,然后再次保存。 如果需要,可以跳过外部对象,让cookie成为数组。

编辑:说cookieStr是您的cookie。

var root = $.parseJSON(cookieStr);
root.products.push(newProduct);
cookieStr = JSON.stringify(root);

将JSON.stringify(cookieStr)返回的值保存到cookie中不是一个好习惯。 它可能会导致某些浏览器中的错误。

在使用它之前,您应该将其转换为base64(使用btoa),并且在读取时,应将其从base64转换(使用atob)

val = JSON.stringify(cookieStr)
val = btoa(val)

write_cookie(val)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM