2017-10-18 6 views
-3

ローカルストアにいくつかのアイテムを保存し、キー値をストリング化して保存します。キーを私に与えstringifyされたオブジェクトキー値の値を取得

localStorage.setItem(this.set_name, JSON.stringify(this.description)) 

item1 Value: [{"description": "some description that was store"}, {"description": "some description that was store"}] 

私は予想通りであるとしてJSON.parseを行わず、それが全体の値を返しますので、それは、オブジェクトオブジェクトとして返しますJSON.parseとキーの値を取得

私がしたいことは、説明の中にあるもの、「値段全体ではない」何らかの説明を返すことです。

どうすればよいですか?

function loadStorage() { 
    $itemSection = $("#item-section-set"); 
    var keys = Object.keys(localStorage), 
     i = 0, 
     key; 
    for (; key = keys[i]; i++) { 
     let itemDesc = localStorage.getItem(key); 
     console.log(JSON.parse(itemDesc)) 
    } 
} 

コンソールは、あなたが最初にそれを解析して、配列からそれをフェッチする必要があり、私に'(3) [{…}, {…}, {…}]'

+1

あなたはあなたが欲しいもの、そして現在あなたが得ているものの明確な例を挙げることができますか? – evolutionxbox

+1

あなたのコードにはどこで 'JSON.parse'を使用していますか? –

+0

'' 'ストアであった説明、' 'ストアである何らかの説明 ''を保存する方が簡単ではないでしょうか? –

答えて

0

を与えます。

私はそれを保存する文字列化に作るべき ストレージなどの別のサービスを作成することになり、一般的にlocalStorage.getItem(<your key>);

var stringy = "[{\"description\": \"some description that was store 1\"}, {\"description\": \"some description that was store 2\"}]" 
 

 
var parsedArray = JSON.parse(stringy); 
 

 
for(var i = 0; i < parsedArray.length; i++){ 
 
    document.getElementById('area').innerHTML += '<p>'+parsedArray[i].description+'</p>'; 
 
}
<div id="area"></div>

0

と交換し、var stringyはあなたのlocalStorageから得たデータであることを考慮すると、 JSON.parse on また、内部キャッシュのオブジェクト解析対象オブジェクトが必要です。オブジェクトがキャッシュ内にない場合は未定義であり、localStorageから抽出して解析する必要があります

あなたはパフォーマンスについて認識している、とあなたが原因大きすぎるオブジェクトまたは同様にJSON.parseを使用できない場合、私は

localStorage.setItem(this.set_name, JSON.stringify(this.description)); localStorage.setItem(this.set_name+'_'+this.descriptionKey,JSON.stringify(this.description))

のように独立したキーと値のペア の説明を保存しようとします

すべてのオブジェクトを解析せずにdescriptionKeyのみで説明を取得する可能性がある

0

私はあなたに問題を理解しようとしましたが、もし私がしていれば、 1つの項目に複数の説明があるので、ther eは複数の配列であり、複数のオブジェクトを持つ各配列、したがって複数の記述は、この問題に対する私の解決策をheresします。

function loadStorage() { 
    $itemSection = $("#item-section-set"); 
    var keys = Object.keys(localStorage), 
    i = 0, 
    key; 
    for (; key = keys[i]; i++) { 
     let itemDesc = localStorage.getItem(key); 
     var oneLocalStorageItem = JSON.parse(itemDesc); 
     oneLocalStorageItem.map(function(oneObjectItem){ 
      console.log(oneObjectItem.description); 
     }) 
    } 
} 
関連する問題