kitaoka
localStorageで複数のデータを保存する
localStorageにデータを保存する場合、1つのキー(key)に対して1つのデータしか保存できませんが、
複数のデータを保存・取得したいときの方法をまとめておきます。
localStorageは、cookieのようにデータをブラウザで永続的に保存できる仕組みで、
データは、キー(key)と値(value)の組み合わせで保存されます。
●保存方法
localStorageにデータを保存するには、setItem()メソッドを使います。
localStorage.setItem(key, value); //keyとvalueをペアにしてデータを保存
●取得方法
localStorageからデータを取得するには、getItem()メソッドを使います。
localStorage.getItem(key); //keyに対応するvalueを取得
●複数データの保存
localStorageに複数データを保存する場合、1つのキー(key)に1つずつデータを保存していってもいいのですが、
複数のデータをまとめて、オブジェクトとして1つのキー(key)に保存できます。
例えば、次のようなJSON形式に変換したデータを保存したい場合、
そのまま保存してしまうと、意図した通りに保存されませんので、注意が必要です。
var datalist = { data1: "hoge1", data2: "hoge2" } localStorage.setItem("datalist", datalist); localStorage.getItem("datalist"); // -> "[object Object]"
この場合、データを保存する前に、文字列に一旦変換する必要があります。
JSON形式のデータを文字列に変換するために、JSON.stringify()メソッドを利用します。
localStorage.setItem("datalist", JSON.stringify(datalist));
また、データを取得するには、getItem()で取得した文字列データをJSON形式に戻す必要があります。
JSON形式に戻すには、JSON.parse()メソッドを利用します。
JSON.parse(localStorage.getItem("datalist")) // -> {"data1":"hoge1", "data2":"hoge2"}
期待した値が保存されていることが確認できます。
■参考サイト
ブラウザでストレージ? Web Storageを使いこなそう (1/3)
Web Storage使用上の注意点