もくじ
JavaScriptでCookieの値に配列・オブジェクト(連想配列)を保存する方法と保存した配列・オブジェクトを取得する方法を紹介します。
時々フロントエンドの業務で使用することがあるため、コピペで使用できるよう関数にまとめました。
JavaScriptのCookieの基本的なことや検証ツールでCookieを確認する方法は以下の記事でまとめてます。
【JavaScript】Cookieを操作(保存・削除・取得・更新)する方法
もくじCookieとは?Cookieを保存する方法保存する値にセミコロン(;)、カンマ(,)、空白、日本語が含まれる場合、URLエンコードが必要Cookieを削除(無効化)する方法過去の日付を指定して ...
コピペ用コード
Cookieの値に配列・オブジェクトを保存する関数
// Cookieの値に配列・オブジェクトを保存する関数
function setCookieObj(cookieName, cookieValue, cookiePath = '', cookieExpires) {
try {
let jsonStr = JSON.stringify(cookieValue);
if (cookieExpires) {
document.cookie = cookieName + '=' + encodeURIComponent(jsonStr) + '; path=' + cookiePath + '; expires=' + new Date(cookieExpires).toUTCString() + ';';
} else {
//有効期限が設定されてない場合、セッションクッキーとする
document.cookie = cookieName + '=' + encodeURIComponent(jsonStr) + '; path=' + cookiePath + ';';
}
} catch (error) {
//エラー時の処理
console.log('保存時にエラーが発生しました。', error);
}
}
Cookieの値に保存してある配列・オブジェクトを取得する関数
// Cookieの値に保存してある配列・オブジェクトを取得する関数
function getCookieObj(cookieName) {
try {
let name = cookieName + '=';
let decodedCookie = decodeURIComponent(document.cookie);
let cookieArray = decodedCookie.split(';');
for(let i = 0; i < cookieArray.length; i++) {
let cookie = cookieArray[i].trim();
if (cookie.indexOf(name) === 0) {
let jsonStr = cookie.substring(name.length, cookie.length);
return JSON.parse(jsonStr);
}
}
//指定されたクッキーが見つからない場合「null」を返す
return null;
} catch (error) {
//エラー時の処理
console.log('取得時にエラーが発生しました。', error);
return null;
}
}
使用方法
setCookieObj()関数の使用方法
第一引数のcookieName
にCookie名と第二引数のcookieValue
に配列・オブジェクトを指定することで、Cookieの値ににオブジェクトを保存することができます。
各引数について
cookieName (必須)
クッキー名を指定します。cookieValue (必須)
クッキーの値に保存したい配列・オブジェクト指定します。cookiePath
クッキーが有効なパスを指定できます。
パス設定がない場合、デフォルトで空文字列が指定されており、クッキーはウェブサイト全体で有効となります。cookieExpires
クッキーの有効期限を指定できます。
有効期限が設定されていない場合、クッキーはセッションクッキーとして扱われ、ブラウザが閉じられると自動的に削除されます。
使用例
下記コードは有効期限を1日後に設定し、Cookie名test
にtestObj
(オブジェクト)を保存しています。
const testObj = {
a: 'aa',
b: 'bb',
c: 'cc',
};
// クッキーの有効期限を1日後に設定
const expirationDate = new Date();
expirationDate.setDate(expirationDate.getDate() + 1);
setCookieObj('test', testObj, '/', expirationDate);
getCookieObj()関数の使用方法
第一引数のcookieName
に取得したいCookie名を指定することで、Cookieに保存してある配列・オブジェクトを取得できます。
使用例
下記コードは、Cookie名test
に保存してあるオブジェクトを取得し、変数retrievedCookieObj
に格納しています。
let retrievedCookieObj = getCookieObj('test');
console.log(retrievedCookieObj);
HTMLとCSSの知識がありJavaScriptを学びたいという方におすすめの1冊
JavaScriptのフロントエンドエンジニアを目指している方におすすめの1冊
もみじ
この本はJavaScript初心者からフロントエンドエンジニアを目指す方にぴったりの1冊です。
非同期処理やAJAXなど、現代の開発で必要なスキルがわかりやすく解説されており、実務で役立つスキルを学ぶことができます。
もみじ
HTMLとCSSの知識がありJavaScriptを学びたいという方に入門書としておすすめの書籍です。
実務で役立つサンプルを手を動かしながら学ぶことができ、実践的なスキルを身に付けることができます。