我想在HTML5本地存储中存储JavaScript对象。
sessionStorage.setItem("localObj",this);
我在函数中使用上述语句。该对象包含HTML标记。 我既不能将其转换为字符串也不能转换为JSON。 我该如何处理?
答案 0 :(得分:7)
您必须先将对象转换为json,然后存储在本地存储中。当你想重用存储的数据时,你必须将json字符串反序列化为javascript对象,它才能正常工作。
<强> Working Sample 强>
function setValue() {
var obj = new user();
var jsonObject = JSON.stringify(obj);
sessionStorage.setItem("Gupta", jsonObject);
getValue();
}
function user() {
this.Name = "rahul";
this.Age = 20;
}
function getValue() {
var json_string = sessionStorage.getItem("Gupta");
var obj = JSON.parse(json_string)
alert("Name = "+obj.Name + ", Age = " + obj.Age);
}
答案 1 :(得分:1)
本地存储只会存储字符串。如果您无法对对象进行字符串表示,则无法存储它。
答案 2 :(得分:0)
本地存储在设计时考虑了字符串/值对,因此您将很难尝试按原样存储对象。你要么需要'字符串化'它,要么你需要查看别的东西。这个早期问题的答案应该有所帮助: