在HTML5本地存储中存储javascript对象

时间:2013-08-27 07:13:25

标签: javascript html5 local-storage

我想在HTML5本地存储中存储JavaScript对象。

sessionStorage.setItem("localObj",this);

我在函数中使用上述语句。该对象包含HTML标记。 我既不能将其转换为字符串也不能转换为JSON。 我该如何处理?

3 个答案:

答案 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)

本地存储在设计时考虑了字符串/值对,因此您将很难尝试按原样存储对象。你要么需要'字符串化'它,要么你需要查看别的东西。这个早期问题的答案应该有所帮助:

Storing Objects in HTML5 localStorage

相关问题