我有一个小提琴,显示我如何得到一个jq .map()数组,其中包含我网站上复选框的状态。它在控制台中生成以下对象:
[Object {name="Sunday", status="Checked"}, Object {name="Monday", status="Checked"}, Object {name="Tuesday", status="UnChecked"}]
将对象保存到本地存储。现在,显然,在下次用户访问该页面时,我想将该对象拉回并解析它以检查以前选中的复选框(是的,我知道本地存储不理想,但是对于这个项目来说没问题) 。我知道如何以编程方式检查复选框,但我似乎无法遍历已保存的对象。
以下是代码jsfiddle
答案 0 :(得分:2)
Web存储仅支持字符串值。因此,您需要在保存之前使用JSON.stringify(obj)
将对象转换为JSON字符串。
检索它时,您可以使用JSON.parse(str)
或$.parseJSON(str)
将其解析回对象。
更新了例子:http://jsfiddle.net/ab316mkr/5/
来自MDN:
注意:请记住,在存储之前,您在此页面中描述的任何存储中存储的所有内容都将使用其.toString方法转换为字符串。因此,尝试存储公共对象将导致存储字符串“[object Object]”而不是对象或其JSON表示。使用浏览器提供的本机JSON解析和序列化方法是以字符串格式存储对象的一种常用方法。