我想在html5中存储一个javascript对象localstorage,但是我的对象显然正在转换为字符串。

我可以使用来存储和检索原始javascript类型和数组localstorage,但是对象似乎无法正常工作。应该吗

这是我的代码:

var testobject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testobject: ' + typeof testobject);
console.log('testobject properties:');
for (var prop in testobject) {
    console.log('  ' + prop + ': ' + testobject[prop]);
}

// put the object into storage
localstorage.setitem('testobject', testobject);

// retrieve the object from storage
var retrievedobject = localstorage.getitem('testobject');

console.log('typeof retrievedobject: ' + typeof retrievedobject);
console.log('value of retrievedobject: ' + retrievedobject);

控制台输出为

typeof testobject: object
testobject properties:
  one: 1
  two: 2
  three: 3
typeof retrievedobject: string
value of retrievedobject: [object object]

在我看来,该setitem方法是在存储输入之前将输入转换为字符串。

解决方案:

再次查看apple,mozilla和mozilla文档,该功能似乎仅限于处理字符串键/值对。

一种解决方法是在存储对象之前先对它进行字符串化处理,然后在检索它时对其进行解析:

var testobject = { 'one': 1, 'two': 2, 'three': 3 };

// put the object into storage
localstorage.setitem('testobject', json.stringify(testobject));

// retrieve the object from storage
var retrievedobject = localstorage.getitem('testobject');

console.log('retrievedobject: ', json.parse(retrievedobject));

到此这篇关于在html5 localstorage中存储对象的文章就介绍到这了,更多相关html5 localstorage存储对象内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章,希望大家以后多多支持www.887551.com!