JSONデータをCookieに保存するにはどうすればよいですか?
私のJSONデータは次のようになります
$("#ArticlesHolder").data('15', {name:'testname', nr:'4',price:'400'});
$("#ArticlesHolder").data('25', {name:'name2', nr:'1', price:'100'});
$("#ArticlesHolder").data('37', {name:'name3', nr:'14', price:'60'});
そして、私は次のようなことをしたいです
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
そして、$("#ArticlesHolder")
にロードしたいデータを取得するには
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
私が正しい軌道に乗っているかどうか、またはこれを他の方法で行うべきかどうかは誰にも分かりますか?簡単に言えば、どのようにしてJSONデータをCookieに入れたり、プルしたりできますか?
次のように、データをJSONとしてシリアル化できます。
$.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));
次に、Cookieから取得します。
$("#ArticlesHolder").data(JSON.parse($.cookie("basket-data")));
これは JSON.stringify()
およびJSON.parse()
に依存します。古いブラウザ(IE <8)の場合は json2.js を使用してデータオブジェクトをシリアライズ/デシリアライズし、JSON
機能を取得します。この例では jQuery cookieプラグイン を使用します
JSON.stringify
を明示的に使用する必要はもうありません。このコード行を実行するだけです
$.cookie.json = true;
その後、任意のオブジェクトをCookieに保存できます。これは、Cookieを読み取るときに自動的にJSONに変換され、JSONから戻されます。
var user = { name: "name", age: 25 }
$.cookie('user', user);
...
var currentUser = $.cookie('user');
alert('User name is ' + currentUser.name);
ただし、JSONライブラリにはjquery.cookieが付属していないため、自分でダウンロードして、htmlページに jquery.cookie.js を含める必要があります。
JSON.stringify(userData)
を使用して、JSONオブジェクトを文字列に変換します。
var dataStore = $.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));
cookieから戻るにはJSON.parse()
を使用します
var data=JSON.parse($.cookie("basket-data"))
JSON.stringify(userData)
から返された値をCookieに保存することはお勧めできません。一部のブラウザでバグが発生する可能性があります。
それを使用する前に、それをbase64(btoa
を使用)に変換し、それを読み取るときにbase64(atob
を使用)から変換する必要があります。
val = JSON.stringify(userData)
val = btoa(val)
write_cookie(val)
JSONおよびBase64としてデータをシリアル化すると、依存関係jquery.cookie.jsが次のようになります。
var putCookieObj = function(key, value) {
$.cookie(key, btoa(JSON.stringify(value)));
}
var getCookieObj = function (key) {
var cookie = $.cookie(key);
if (typeof cookie === "undefined") return null;
return JSON.parse(atob(cookie));
}
:)
これを試してください: https://github.com/tantau-horia/jquery-SuperCookie
クイック使用:
create-Cookieを作成します
check-存在を確認します
verify-JSONの場合、Cookieの値を確認します
check_index-インデックスがJSONに存在するかどうかを確認します
read_values-Cookie値を文字列として読み取ります
read_JSON-Cookie値をJSONオブジェクトとして読み取る
read_value-JSONオブジェクトに格納されているインデックスの値を読み取ります
replace_value-JSONオブジェクトに保存されている指定されたインデックスの値を置き換えます
remove_value-JSONオブジェクトに保存されている値とインデックスを削除します
使用するだけ:
$.super_cookie().create("name_of_the_cookie",name_field_1:"value1",name_field_2:"value2"});
$.super_cookie().read_json("name_of_the_cookie");