2

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

sessionStorage.setItem("localObj",this);

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

4

3 回答 3

8

您必须先将对象转换为 json,然后存储在本地存储中。当你想重用存储的数据时,你必须将 json 字符串反序列化为 javascript 对象,它会正常工作。

工作样本

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);
}
于 2013-08-27T07:41:53.253 回答
1

本地存储只会存储字符串。如果你不能对你的对象进行字符串表示,那么你就不能存储它。

于 2013-08-27T07:16:08.187 回答
0

本地存储在设计时考虑了字符串/值对,因此您将很难尝试“按原样”存储对象。您要么需要对其进行“字符串化”,要么需要查看其他内容。这个早先问题的答案应该有助于:

在 HTML5 localStorage 中存储对象

于 2013-08-27T07:18:47.963 回答