我想在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);
Run Code Online (Sandbox Code Playgroud)
控制台输出是
typeof testObject: object
testObject properties:
one: 1 …Run Code Online (Sandbox Code Playgroud) JSON对象数组存储在HTML5中localStorage.
现在定界符是
用于访问和修改从物体的阵列, 和使用的操作.;localStoragesplit(';')join(';')
但是,分隔符方法看起来不稳定.
例如,;可以在对象内部属性中遇到并且split(';')操作将是不正确的.
它可以用于;;分隔符,但我不确定它是否也会稳定.
有没有任何可靠的方法来处理localStorage呈现为对象数组,到目前为止localStorage保存为String?
编辑
阻止者之一是对象数组无法像经典那样保存到localStorage:"[{},{}]"
localStorage将其自动转换为String like"{},{}"
我当前的数据localStorage:
"{"name":"volvo","id":"033"};{"name":"saab","id":"034"}"
Run Code Online (Sandbox Code Playgroud)
假设
也许,我可以[在开始和]结束时添加,但它看起来并不优雅