ser*_*nni 16 javascript arrays html5 object local-storage
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)
假设
也许,我可以[在开始和]结束时添加,但它看起来并不优雅
Cer*_*rus 39
只需将对象转换为JSON字符串:
localStorage.setItem("savedData", JSON.stringify(objects));
Run Code Online (Sandbox Code Playgroud)
反之亦然:
objects = JSON.parse(localStorage.getItem("savedData")));
Run Code Online (Sandbox Code Playgroud)
或者,您可以在同一localStorage值中添加多个对象:
localStorage.setItem("savedData", JSON.stringify([object1, object2 /*, etc*/]));
object1 = JSON.parse(localStorage.getItem("savedData"))[0];
object2 = JSON.parse(localStorage.getItem("savedData"))[1];
Run Code Online (Sandbox Code Playgroud)
你也可以savedData像这样访问:
localStorage.savedData = "Hello world"
var foo = localStorage.savedData;
Run Code Online (Sandbox Code Playgroud)
这可以同时用于获取和设置数据,但它被认为是不那么"安全"比getItem('name');和setItem('name', 'value');