在jQuery Cookie中存储对象/数组

时间:2016-03-07 14:02:29

标签: javascript cookies js-cookie

如何在JavaScript Cookie中存储对象/数组? 我尝试了那个简单的代码

from flask import Flask
from flask.ext.cdn import CDN

app = Flask(__name__)
app.config['CDN_DOMAIN'] = 'cdn.yourdomain.com'
CDN(app)

它显示第一个控制台消息中的所有值,但仅提供" [object Object]"在第二。看起来js-cookie无法正确使用对象。有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

您正在存储一个对象,并且只允许使用纯文本。请记住,Cookie的最大长度为4 KB,因此您无法在此处存储大量信息(请改用localStorage)。

要解决此问题,您必须首先对json进行字符串化处理:

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

并且您将存储字符串化对象。要访问它,您必须解析字符串:

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

答案 1 :(得分:-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中的对象

进行访问
// $.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

答案 2 :(得分:-1)

只需使用:

Cookies.getJSON('item')

js-cookie从版本2.0.0开始内置了对JSON解析的支持,无需更改设置方式。有关详细信息,请参阅https://github.com/js-cookie/js-cookie/tree/v2.1.0#json