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]"

 

img02

 

この場合、データを保存する前に、文字列に一旦変換する必要があります。
JSON形式のデータを文字列に変換するために、JSON.stringify()メソッドを利用します。

localStorage.setItem("datalist", JSON.stringify(datalist));

 

また、データを取得するには、getItem()で取得した文字列データをJSON形式に戻す必要があります。
JSON形式に戻すには、JSON.parse()メソッドを利用します。

JSON.parse(localStorage.getItem("datalist"))  // -> {"data1":"hoge1", "data2":"hoge2"}

 

期待した値が保存されていることが確認できます。

img01

 

 

■参考サイト
ブラウザでストレージ? Web Storageを使いこなそう (1/3)
Web Storage使用上の注意点

 

お問い合わせはこちら