19

JSON オブジェクトの配列は HTML5 に格納されますlocalStorage
今のところ、区切り文字は からのオブジェクトの配列へのアクセスと変更、 および使用される操作用です。;
localStoragesplit(';')join(';')

ただし、区切り文字のアプローチは不安定に見えます。
たとえば、;オブジェクト属性内で一致する可能性があり、split(';')操作が正しくありません。

区切り文字に使用できますが;;、安定するかどうかはわかりません。

保存されlocalStorageている限り、オブジェクトの配列として提示されたものを処理する堅牢な方法はありますか?localStorageString

編集

ストッパーの 1 つは、オブジェクトの配列を従来のように 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 に答える