19

JSON 对象数组存储在 HTML5 中localStorage
现在分隔符是 用于访问和修改对象数组, 以及使用的操作。;
localStoragesplit(';')join(';')

但是,分隔符方法看起来不稳定。
例如;可能会在对象属性内部遇到并且split(';')操作将不正确。

它可以用于;;分隔符,但我不确定它是否也会稳定。

是否有任何可靠的方法来处理localStorage作为对象数组呈现的对象,就localStorage保存为String

编辑

阻止者之一是对象数组无法像经典一样保存到 localStorage:"[{},{}]"
localStorage将其自动转换为 String 之类"{},{}"

我当前的数据在localStorage

"{"name":"volvo","id":"033"};{"name":"saab","id":"034"}"

也许假设
,我可以[在开头和]结尾添加,但它看起来并不优雅

4

2 回答 2

44

只需将对象转换为 JSON 字符串:

localStorage.setItem("savedData", JSON.stringify(objects));

反之亦然:

objects = JSON.parse(localStorage.getItem("savedData")));

或者您可以在同一个 localStorage 值中添加多个对象:

localStorage.setItem("savedData", JSON.stringify([object1, object2 /*, etc*/]));
object1 = JSON.parse(localStorage.getItem("savedData"))[0];
object2 = JSON.parse(localStorage.getItem("savedData"))[1];

这是 DOM 存储规范

你也可以savedData这样访问:

localStorage.savedData = "Hello world"
var foo = localStorage.savedData;

这可用于获取和设置数据,但它被认为不如getItem('name');setItem('name', 'value');

于 2012-12-04T11:47:04.667 回答
0

读取变量:

var xyz = JSON.parse( localStorage.getItem( 'element' ) );

存储变量:

localStorage.setItem( 'element' , JSON.stringify(xyz));

其中element是本地存储变量xyz的名称和js变量的名称。

于 2012-12-04T11:48:45.703 回答