How do I save JSON data in a cookie?
My JSON data looks like this
$("#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'});
And I want to do something like
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
and to retrieve the data i want to load it into $("#ArticlesHolder")
like
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
does anyone know if I'm on the right track or should this be done in some other way? Simply put, how do i put and pull json data from a cookie?
use
JSON.stringify(userData)
to coverty json object to string.and for getting back from cookie use
JSON.parse()
Try this one: https://github.com/tantau-horia/jquery-SuperCookie
Just use:
With serialize the data as JSON and Base64, dependency jquery.cookie.js :
:)
It is not good practice to save the value that is returned from
JSON.stringify(userData)
to a cookie; it can lead to a bug in some browsers.Before using it, you should convert it to base64 (using
btoa
), and when reading it, convert from base64 (usingatob
).Now there is already no need to use
JSON.stringify
explicitly. Just execute this line of codeAfter that you can save any object in cookie, which will be automatically converted to JSON and back from JSON when reading cookie.
But JSON library does not come with jquery.cookie, so you have to download it by yourself and include into html page before jquery.cookie.js
You can serialize the data as JSON, like this:
Then to get it from the cookie:
This relies on
JSON.stringify()
andJSON.parse()
to serialize/deserialize your data object, for older browsers (IE<8) include json2.js to get theJSON
functionality. This example uses the jQuery cookie plugin