对象的localStorage的阵列处理(localStorage array of objects

2019-07-04 12:16发布

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

然而,分隔符方法看起来不稳定。
例如; 可满足内部的对象属性和split(';')操作将是uncorrect。

它可以用来;; 为分隔符,但我不能肯定这将是稳定也。

有没有处理任何可靠的方法localStorage表现为对象的数组,尽量localStorage保存为String

编辑

止动件中的一个是对象的数组无法保存到localStorage的古典: "[{},{}]"
localStorage将其转换automatially到字符串如"{},{}"

在我的当前数据localStorage

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

假设
或许,我可以添加[开始和]在最后,但看起来并不gracefull

Answer 1:

只是转换的对象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');



Answer 2:

阅读变量:

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

存储变量:

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

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



Answer 3:

您可以使用解析和字符串化,如果数组不是太大,但如果是的话,你会重新编码整个数据的每个细微变化设置。

在图书馆http://rhaboo.org通过给每个数组条目的链接列表它自己的localStorage项上得到改善。 这意味着你可以非常有效地进行更改。 不像JSON,还接受文本命名属性和三种不同类型的稀疏项的(空,未定义的,根本不存在。)

顺便说一句,我写rhaboo。



文章来源: localStorage array of objects handling