Frage

Wie kann ich speichern JSON-Daten in einem Cookie?

Meine JSON-Daten wie folgt aussieht

$("#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'});

Und ich will, wie etwas tun

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

und die Daten abzurufen, ich will es in $("#ArticlesHolder") laden wie

$.each($.cookie("basket-data"), function(i,e){
 $("#ArticlesHolder").data(i, e);
});

Wer weiß, wenn ich auf dem richtigen Weg bin oder sollte dies auf andere Weise getan werden? Einfach ausgedrückt, wie ich aus einem Cookie setzen und ziehen Sie json Daten?

War es hilfreich?

Lösung

Sie können die Daten als JSON serialisiert werden, wie folgt:

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

Dann ist es aus dem Cookie zu bekommen:

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

Dies stützt sich auf JSON.stringify() und JSON.parse() serialisiert / deserialisieren Ihr Datenobjekt, für ältere Browser (IE <8) umfasst json2.js die JSON Funktionalität zu erhalten. In diesem Beispiel wird die jQuery Cookie-Plugin

Andere Tipps

Jetzt gibt es bereits keine Notwendigkeit, den Einsatz JSON.stringify explizit. Führen Sie einfach diese Codezeile

$.cookie.json = true;

Danach können Sie ein beliebiges Objekt in Cookie speichern können, die automatisch zu JSON konvertiert werden und von JSON zurück, wenn Cookie zu lesen.

var user = { name: "name", age: 25 }
$.cookie('user', user);
...

var currentUser = $.cookie('user');
alert('User name is ' + currentUser.name);

Aber JSON Bibliothek kommt nicht mit jquery.cookie, so dass Sie es selbst herunterladen und sind in HTML-Seite vor jquery. cookie.js

Verwendung JSON.stringify(userData) zu Coverty JSON-Objekt zu bespannen.

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

und zurück von Cookies Verwendung JSON.parse() bekommen

var data=JSON.parse($.cookie("basket-data"))

Es ist nicht ratsam, den Wert zu speichern, die von JSON.stringify(userData) zu einem Cookie zurückgegeben wird; kann es in einigen Browsern zu einem Fehler führen.

Bevor Sie es verwenden, sollten Sie es konvertieren zu base64 (mit btoa), und wenn es zu lesen, konvertieren von base64 (mit atob).

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

write_cookie(val)

Mit serialize die Daten als JSON und Base64, Abhängigkeit 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));
}

:)

Versuchen Sie dieses: https://github.com/tantau-horia/jquery-SuperCookie

  

Schnell Verbrauch:

     

erstellen - Cookie

     

Kontrolle - existance

     

überprüfen - überprüfen Cookie-Wert, wenn JSON

     

check_index - überprüfen, ob Index in JSON

existiert      

read_values ??- Lese Cookie-Wert als Zeichenfolge

     

read_JSON - Lese Cookie-Wert als JSON-Objekt

     

Read_Value - Lese Wert des Index im JSON-Objekt gespeichert

     

replace_value - ersetzt Wert aus einem bestimmten Index im JSON-Objekt gespeichert

     

remove_value - remove Wert und Index im JSON-Objekt gespeichert

Just Verwendung:

$.super_cookie().create("name_of_the_cookie",name_field_1:"value1",name_field_2:"value2"});
$.super_cookie().read_json("name_of_the_cookie");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top