112

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);
});

私が正しい方向に進んでいるかどうか、またはこれを他の方法で行う必要があるかどうかを誰かが知っていますか?簡単に言えば、Cookieからjsonデータを配置およびプルするにはどうすればよいですか?

4

6 に答える 6

201

次のように、データを JSON としてシリアル化できます。

$.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

次に、Cookie から取得します。

$("#ArticlesHolder").data(JSON.parse($.cookie("basket-data")));

これは、データ オブジェクトをシリアライズ/デシリアライズすることに依存していJSON.stringify()ます。古いブラウザ (IE<8) では、 JSON.parse()json2.jsをインクルードして機能を取得しJSONます。この例では、jQuery Cookie プラグインを使用しています

于 2010-11-19T12:41:59.903 に答える
40

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 が付属していないため、自分でダウンロードして、jquery.cookie.jsの前に html ページに含める必要があります。

于 2013-01-22T21:51:03.433 に答える
7

JSON.stringify(userData)json オブジェクトを文字列に変換するために使用します。

var dataStore = $.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

Cookie の使用から復帰するためJSON.parse()

var data=JSON.parse($.cookie("basket-data"))
于 2010-11-19T12:42:38.637 に答える
5

JSON.stringify(userData)返された値をCookieに保存することはお勧めできません。一部のブラウザではバグが発生する可能性があります。

使用する前にbase64に変換( を使用btoa) し、読み取るときにbase64から変換(を使用) する必要がありますatob

val = JSON.stringify(userData)
val = btoa(val)

write_cookie(val)
于 2015-06-03T07:49:49.307 に答える
0

これを試してください: https://github.com/tanau-horia/jquery-SuperCookie

クイック使用法:

作成 - クッキーを作成

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");
于 2012-10-19T09:21:09.263 に答える