Jak zapisać dane JSON w pliku cookie?
Moje dane JSON wyglądają tak
$("#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'});
A ja chcę zrobić coś takiego
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
i odzyskać dane, chcę, aby załadować go do $("#ArticlesHolder")
jak
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
czy ktoś wie, czy jestem na dobrej drodze, czy też należy to zrobić w inny sposób? Mówiąc najprościej, jak umieścić i pobrać dane JSON z pliku cookie?
jquery
cookies
jquery-cookie
Marthin
źródło
źródło
Odpowiedzi:
Możesz serializować dane jako JSON, na przykład:
Następnie, aby uzyskać to z pliku cookie:
To zależy od
JSON.stringify()
iJSON.parse()
do serializacji / deserializacji swój obiekt danych, dla starszych przeglądarek (IE <8) obejmują json2.js aby uzyskaćJSON
funkcjonalność. W tym przykładzie zastosowano wtyczkę do plików cookie jQueryźródło
cookie
jest to funkcja wbudowana w jQuery. Wydaje się, że tak nie jest. czy jest przestarzałe ..? jeśli są to wtyczki, które znajduję, linkowanie do nich byłoby świetne, aby uniknąć nieporozumień ...,
(przecinek) może spowodować nieprawidłowe ustawienie plików cookie w przeglądarce Safari i innych przeglądarkach.Teraz nie ma już potrzeby
JSON.stringify
jawnego używania . Po prostu wykonaj tę linię koduNastępnie możesz zapisać dowolny obiekt w pliku cookie, który zostanie automatycznie przekonwertowany na JSON iz powrotem z JSON podczas odczytu pliku cookie.
Ale biblioteka JSON nie zawiera jquery.cookie, więc musisz ją pobrać samodzielnie i dołączyć do strony html przed jquery.cookie.js
źródło
$cookie.json = true
może powodować konflikty z innymi plikami cookie. Więc uważaj, używając tego w projekcie, który już używa plików cookie w innym miejscu!użyj,
JSON.stringify(userData)
aby zakryć obiekt json do ciągu.i za wycofanie się z używania plików cookie
JSON.parse()
źródło
Zapisywanie wartości zwracanej z
JSON.stringify(userData)
do pliku cookie nie jest dobrą praktyką ; może to prowadzić do błędu w niektórych przeglądarkach.Przed użyciem należy przekonwertować go na base64 (używając
btoa
), a czytając go przekonwertować z base64 (używającatob
).źródło
{
lub}
i dyskretnie usunie wszystkie pliki cookie, które następują po odrzuconym pliku cookie w nagłówku pliku cookie.Z serializacją danych jako JSON i Base64, zależność jquery.cookie.js:
:)
źródło
Wypróbuj ten: https://github.com/tantau-horia/jquery-SuperCookie
Po prostu użyj:
źródło