Wie speichere ich JSON-Daten in einem Cookie?
Meine JSON-Daten sehen so aus
$("#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 möchte so etwas tun
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
und um die Daten abzurufen, möchte ich sie in $("#ArticlesHolder")
like laden
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
Weiß jemand, ob ich auf dem richtigen Weg bin oder sollte dies auf andere Weise geschehen? Einfach ausgedrückt, wie kann ich JSON-Daten aus einem Cookie ablegen?
jquery
cookies
jquery-cookie
Marthin
quelle
quelle
Antworten:
Sie können die Daten wie folgt als JSON serialisieren:
Dann, um es aus dem Cookie zu bekommen:
Dies basiert auf
JSON.stringify()
undJSON.parse()
zum Serialisieren / Deserialisieren Ihres Datenobjekts. Ältere Browser (IE <8) enthalten json2.js , um dieJSON
Funktionalität zu erhalten. In diesem Beispiel wird das jQuery-Cookie-Plugin verwendetquelle
cookie
eine in jQuery integrierte Funktion ist. Es scheint nicht zu sein. oder ist es veraltet ..? Wenn es die Plugins sind, die ich finde, wäre es großartig, darauf zu verlinken, um die Verwirrung zu vermeiden ...,
(Komma-) Zeichen kann dazu führen, dass die Cookies in Safari und anderen Browsern nicht richtig gesetzt werden.Jetzt besteht keine Notwendigkeit mehr,
JSON.stringify
explizit zu verwenden . Führen Sie einfach diese Codezeile ausDanach können Sie jedes Objekt in einem Cookie speichern, das beim Lesen des Cookies automatisch in JSON und zurück von JSON konvertiert wird.
Die JSON-Bibliothek wird jedoch nicht mit jquery.cookie geliefert. Sie müssen sie daher selbst herunterladen und vor jquery.cookie.js in die HTML-Seite aufnehmen
quelle
$cookie.json = true
zu Konflikten mit Ihren anderen Cookies führen. Seien Sie also vorsichtig bei einem Projekt, das bereits an anderer Stelle Cookies verwendet!Verwenden Sie
JSON.stringify(userData)
diese Option, um ein JSON-Objekt in eine Zeichenfolge umzuwandeln.und für die Rückkehr von der Verwendung von Cookies
JSON.parse()
quelle
Es wird nicht empfohlen, den zurückgegebenen Wert
JSON.stringify(userData)
in einem Cookie zu speichern . In einigen Browsern kann dies zu einem Fehler führen.Bevor Sie es verwenden, sollten Sie es in base64 (using
btoa
) konvertieren und beim Lesen von base64 (usingatob
) konvertieren .quelle
{
oder enthalten}
, und löscht alle Cookies, die dem abgelehnten Cookie folgen, im Cookie-Header.Wenn Sie die Daten als JSON und Base64 serialisieren, ist die Abhängigkeit jquery.cookie.js:
:) :)
quelle
Versuchen Sie dies: https://github.com/tantau-horia/jquery-SuperCookie
Benutz einfach:
quelle