我可以用 cookie 保存 javascript 对象吗?
Can i save a javascript object with cookies?
我一直在从事一个项目,该项目使用对象来维持与用户的对话。但是,如果用户询问的内容不在该对象中。系统会提示用户 "AI" 应该回答什么。问题是我无法保存此对象,因此当用户关闭选项卡或重新加载它时,"AI" 学到的所有内容都会消失。我试过使用 localStorage.setItem('dictionary', JSON.stringify(dictionary))
(字典是对象)但是它给了我 "[object Object]"
。所以我想知道我是否可以使用 cookie 代替?
您使用的 localstorage 没有问题,您是否提醒对象并看到“[object Object]”?
存储对象后,您需要像这样使用它,
var dictonaryParsed = JSON.parse(localStorage.getItem('dictionary'));
这将解决您的问题,这是因为 localStorage.setItem()
将使用原型链中的 toString()
方法,您将得到此 [object Object]
.
这是因为在存储到键值对数据库(localStorage)之前,所有内容都已转换为字符串。
使用 stringify 方法,您正在使用的对象将为 JSON.parse() 方法做好准备,如果不使用,您将得到类似这样的东西 "{"a":10}"
,因此您需要先解析对象使用它。如果您尝试解析非字符串化对象,您将收到错误消息。
我一直在从事一个项目,该项目使用对象来维持与用户的对话。但是,如果用户询问的内容不在该对象中。系统会提示用户 "AI" 应该回答什么。问题是我无法保存此对象,因此当用户关闭选项卡或重新加载它时,"AI" 学到的所有内容都会消失。我试过使用 localStorage.setItem('dictionary', JSON.stringify(dictionary))
(字典是对象)但是它给了我 "[object Object]"
。所以我想知道我是否可以使用 cookie 代替?
您使用的 localstorage 没有问题,您是否提醒对象并看到“[object Object]”?
存储对象后,您需要像这样使用它,
var dictonaryParsed = JSON.parse(localStorage.getItem('dictionary'));
这将解决您的问题,这是因为 localStorage.setItem()
将使用原型链中的 toString()
方法,您将得到此 [object Object]
.
这是因为在存储到键值对数据库(localStorage)之前,所有内容都已转换为字符串。
使用 stringify 方法,您正在使用的对象将为 JSON.parse() 方法做好准备,如果不使用,您将得到类似这样的东西 "{"a":10}"
,因此您需要先解析对象使用它。如果您尝试解析非字符串化对象,您将收到错误消息。